1
votes

At my workplace we are using SAS v9.3 on a Unix server. I need to change the encoding of the SAS session to UTF-8 on a user level. In order to do that I created a sasv9.cfg file in my /home directory, and tried ENCODING latin1 as a test (default is latin9). This works fine. However if I put ENCODING UTF-8 it doesn't work: after I start the SAS EG 5.1 client there is no connection to the server. Details are as follow:

Exception type:  SAS.EG.SDS.SDSException
SAS Message:     [Error] The launch of the server process failed because of a SAS kernel initialization failure.

Raw Message:     <?xml version="1.0" ?><Exceptions><Exception><SASMessage severity="Error">The launch of the server process failed because of a SAS kernel initialization failure.</SASMessage></Exception></Exceptions>
Source:          SAS.EG.SDS.Model
Target Site:     SASWorkspace

Stack Trace:
   à SAS.EG.SDS.Model.Server.SASWorkspace()
   à SAS.EG.SDS.Views.View.DoPopulate(DisplayOperation& op)

From what I read somehere upon connection it spawns a session through the symbolic link /[sashome]/SASFoundation/9.3/sas which points to bin/sas_fr

but I'd need to go through /[sashome]/SASFoundation/9.3/sas_dbcs instead (for my user account only). How can I achieve that?

Unless there is another solution!

Thank you for your help.

1
Are you trying use Enterprise Guide? Or just run SAS? Also why are you using such an old version of SAS? - Tom
I use the SAS EG 5.1 client to connect to a server that runs SAS 9.3. We are soon migrating to SAS EG 8.1 with a SAS 9.4 server but it's pretty much the same issue. - FrankO
Why not just have them create two application servers. One using UTF-8. Then each EG user can decide which to connect to. - Tom
I had already submitted that idea to the technical team, they are considering it. But for now I'm trying to make it work on a user level for urgent testing. In order to do that my client connection needs to somehow invoke /[sashome]/SASFoundation/9.3/sas_dbcs instead of /[sashome]/SASFoundation/9.3/sas. - FrankO
The other possibility is to try running your SAS code on the server directly without using EG. That will be a lot easier since you and trying setting some options on the command line. - Tom

1 Answers

0
votes

Got an answer from SAS technical support:

"The kernel error you are seeing is being caused by launching SBCS (single-byte character set) SAS and attempting to specify a double-byte encoding such as UTF-8."

After running this command: cd [SAS CONFIG PATH]/Lev1/AppSAS-prod/WorkspaceServer echo "endsas;" | bash -x ./WorkspaceServer.sh -verbose -nodms -oplist -stdio > /tmp/launchSAS.txt 2>&1

and examining the launchSAS file they concluded the problem was in the handling of the PATH option in SAS. The effective value in my session was: PATH !SASROOT/sasexe /[SUDAAN HOME]/SUDAAN/v11.0.3/Linux64/SASCallable /usr/local/lib !SASROOT/dbcs/sasexe !SASROOT/sasexe

!SASROOT/sasexe appears before !SASROOT/dbcs/sasexe. This is why I was launching a SBCS SAS session.

There are settings for the PATH option in three of our configuration files, but the one that needed fix was /[SASHOME]/SASFoundation/x.x/sasv9_local.cfg

!SASROOT/sasexe was removed from the PATH.