sassoftware / clinical-standards-toolkit

The open source release of SAS Clinical Standards Toolkit is a direct port of the last production release with minor modifications to adapt to a new deployment architecture.
Apache License 2.0
27 stars 11 forks source link

Java Check continually fails #9

Closed mooggsentry closed 1 year ago

mooggsentry commented 1 year ago

CST0202, JAVA CHECK, SYSERR=1012 DATA STEP Component Object failure. Aborted during the EXECUTION phase.

This happens continuously and I can't figure out why. Everything else seems to work fine.

michaelkilhullen commented 1 year ago

There is likely an issue with the jar file configuration. Check the configuration changes that you made for jreoptions and classpath and compare to the generated sasconfiguration.txt file in your cstFrameworkLibrary folder.

mooggsentry commented 1 year ago

There is likely an issue with the jar file configuration. Check the configuration changes that you made for jreoptions and classpath and compare to the generated sasconfiguration.txt file in your cstFrameworkLibrary folder.

There are two configuration files. I have tried a multitude of combinations. One CFG File is:

`/ set default locations / -TRAINLOC ""

/ set the default fileref for the PARMCARDS= option / -SET FT15F001 'FT15F001.DAT'

/---------------------------------------------------------------\ | SAS System FORMCHARS, used by pressing ALT then the decimal | | number for the Extended ASCII character. | ---------------------------------------------------------------/

/ This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) / -FORMCHAR '82838485868788898A8B8C2B3D7C2D2F5C3C3E2A'x

/---------------------------------------------------------------\ | WARNING: INSTALL Application edits below this line. User | | options should be added above this box comment. | | INSTALL Application maintains and modifies the | | following options; -SASAUTOS, -SASHELP, -SASMSG, | | -PATH, and -MAPS. It also maintains and modifies | | the following CONFIG variables with the -SET option; | | INSTALL, USAGE, LIBRARY, SAMPSIO, SAMPSRC, SASCBT, | | and SASEXT01-SASEXT50. It preserves all lines above | | the line containing 'DO NOT EDIT BELOW THIS LINE'. | ---------------------------------------------------------------/

/ DO NOT EDIT BELOW THIS LINE - INSTALL Application edits below this line / / /

/ Options used when SAS is accessing a JVM for JNI processing / -JREOPTIONS=(

    -DPFS_TEMPLATE=!SASROOT\tkjava\sasmisc\qrpfstpt.xml
    -Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR
    -Djava.security.auth.login.config=!SASROOT\tkjava\sasmisc\sas.login.config
    -Djava.security.policy=!SASROOT\tkjava\sasmisc\sas.policy
    -Djava.system.class.loader=com.sas.app.AppClassLoader
    -Dlog4j.configuration=file:/C:/Program%20Files/SASHome/SASFoundation/9.4/tkjava/sasmisc/sas.log4j.properties
    -Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar
    -Dsas.ext.config=!SASROOT\tkjava\sasmisc\sas.java.ext.config
    -Dsas.jre.libjvm=C:\PROGRA~1\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll
    -Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist
    -Xms256m
    -Xmx256m
    )

-HELPLOC (

    "!SASROOT\core\help"
    "!MYSASFILES\classdoc"
    )

-RESOURCESLOC (

    "!SASROOT\core\resource"
    )

-SET SASAUTOS (

    "!SASROOT\core\sasmacro"
    "!SASROOT\aacomp\sasmacro"
    "!SASROOT\accelmva\sasmacro"
    "!SASROOT\dmscore\sasmacro"
    "!SASROOT\hps\sasmacro"
    "!SASROOT\mlearning\sasmacro"
    )

-SASHELP (

    "!SASCFG\SASCFG"
    "!SASROOT\core\sashelp"
    "!SASROOT\aacomp\sashelp"
    "!SASROOT\af\sashelp"
    "!SASROOT\cas\sashelp"
    "!SASROOT\cmp\sashelp"
    "!SASROOT\mlearning\sashelp"
    "!SASROOT\spdsclient\sashelp"
    )

-MSG (

    "!SASROOT\core\sasmsg"
    "!SASROOT\accelmva\sasmsg"
    "!SASROOT\access\sasmsg"
    "!SASROOT\af\sasmsg"
    "!SASROOT\cas\sasmsg"
    "!SASROOT\cmp\sasmsg"
    "!SASROOT\mtrb\sasmsg"
    "!SASROOT\scoreaccel\sasmsg"
    "!SASROOT\spdsclient\sasmsg"
    )

-SET SAMPSIO (

    "!SASROOT\core\sample"
    "!SASROOT\access\sample"
    "!SASROOT\hps\sample"
    "!SASROOT\hpstat\sample"
    )

-SET SAMPSRC (

    "!SASROOT\core\sample"
    "!SASROOT\access\sample"
    "!SASROOT\hps\sample"
    "!SASROOT\hpstat\sample"
    )

-SET INSTALL (

    )

-PATH (

    "!SASROOT\core\sasexe"
    "!SASROOT\aacomp\sasexe"
    "!SASROOT\aastatistics\sasexe"
    "!SASROOT\accelmva\sasexe"
    "!SASROOT\access\sasexe"
    "!SASROOT\af\sasexe"
    "!SASROOT\analyticcmn\sasexe"
    "!SASROOT\baseui\sasexe"
    "!SASROOT\cas\sasexe"
    "!SASROOT\cmp\sasexe"
    "!SASROOT\dmscore\sasexe"
    "!SASROOT\econometrics\sasexe"
    "!SASROOT\etscomp\sasexe"
    "!SASROOT\forecast\sasexe"
    "!SASROOT\fsp\sasexe"
    "!SASROOT\hadoopbasics\sasexe"
    "!SASROOT\hps\sasexe"
    "!SASROOT\hpstat\sasexe"
    "!SASROOT\mlearning\sasexe"
    "!SASROOT\mtrb\sasexe"
    "!SASROOT\optimization\sasexe"
    "!SASROOT\prochttp\sasexe"
    "!SASROOT\scoreaccel\sasexe"
    "!SASROOT\spdsclient\sasexe"
    "!SASROOT\statcomp\sasexe"
    "!SASROOT\textmine\sasexe"
    "!SASROOT\tsmodel\sasexe"
    "!SASROOT\tsreconcile\sasexe"
    "!SASROOT\tstimeinfo\sasexe"
    )

-FONTSLOC C:\Windows\Fonts -SET MYSASFILES "?FOLDERID_Documents\My SAS Files\9.4" -SASUSER "?FOLDERID_Documents\My SAS Files\9.4" -WORK "!TEMP\SAS Temporary Files" -DMSLOGSIZE = MAX -cpucount 7 -bufsize 256K -MEMSIZE 42G -realmemsize 36G -threads -SORTSIZE 36G -sumsize 36G -SET SASCFG "C:\Program Files\SASHome\SASFoundation\9.4\nls\en" -LOCALE en_US -ENCODING wlatin1 -TEXTURELOC !SASROOT\common\textures -SET SAS_NO_RANDOM_ACCESS "1" -SET SAS_ODSG_CRENDER_PATH "C:\Program Files\SASHome\SASODSGraphicsCRenderer\9.44" `

and the other is -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg" -SET CSTHOME C:/cstFrameworkLibrary -CSTGLOBALLIB C:/cstGlobalLibrary -CSTSAMPLELIB C:/cstSampleLibrary -insert sasautos '!CSTHOME/macros' -JREOPTIONS (-Dsas.app.class.dirs=!CSTHOME/jar) -SET CLASSPATH !CSTHOME/jar /* note: this can alternatively be defined as an environment variable on the server */

The mentioned file in the framework library is:

-SET CSTHOME C:/cstFrameworkLibrary -CSTGLOBALLIB C:/cstGlobalLibrary -CSTSAMPLELIB C:/cstSampleLibrary -insert sasautos '!CSTHOME/macros' -JREOPTIONS (-Dsas.app.class.dirs=!CSTHOME/jar) -SET CLASSPATH !CSTHOME/jar /* note: this can alternatively be defined as an environment variable on the server */

michaelkilhullen commented 1 year ago

sometimes it easier to see what is resolved in your SAS environment. Try running this in your SAS session:

%put %sysget(CSTHOME); %put %sysget(CLASSPATH);

proc options option=cstgloballib option=cstsamplelib option=sasautos option=jreoptions; run;

mooggsentry commented 1 year ago

sometimes it easier to see what is resolved in your SAS environment. Try running this in your SAS session:

%put %sysget(CSTHOME); %put %sysget(CLASSPATH);

proc options option=cstgloballib option=cstsamplelib option=sasautos option=jreoptions; run;

I just did a full reinstall of SAS and Open CST, applied the configuration file and still get the same result. I also used proc java to get more information.

269 %put %sysget(CSTHOME); C:/cstFrameworkLibrary 270 %put %sysget(CLASSPATH); !CSTHOME/jar 271 272 proc options 273 option=cstgloballib 274 option=cstsamplelib 275 option=sasautos 276 option=jreoptions; 277 run;

SAS (r) Proprietary Software Release 9.4  TS1M5

CSTGLOBALLIB=C:/cstGlobalLibrary Specifies the location of the SAS Clinical Standards Toolkit global library. CSTSAMPLELIB=C:/cstSampleLibrary Specifies the location of the SAS Clinical Standards Toolkit sample library. SASAUTOS=('!CSTHOME/macros' SASAUTOS odmcode) Specifies the location of one or more autocall libraries. JREOPTIONS=( -DPFS_TEMPLATE=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\qrpfstpt.xml -Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR -Djava.security.auth.login.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.login.config -Djava.security.policy=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.policy -Djava.system.class.loader=com.sas.app.AppClassLoader -Dlog4j.configuration=file:/C:/Program%20Files/SASHome/SASFoundation/9.4/tkjava/sasmisc/sas.log4j.prop erties -Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar -Dsas.ext.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.java.ext.config -Dsas.jre.libjvm=C:\PROGRA~1\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll -Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist -Xms128m -Xmx128m -Dsas.app.class.dirs=C:/cstFrameworkLibrary/jar ) Specifies the Java Runtime Environment options for SAS. NOTE: PROCEDURE OPTIONS used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

278 279 proc javainfo; 280 run;

PFS_TEMPLATE = C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\qrpfstpt.xml java.class.path = C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR java.class.version = 51.0 java.runtime.name = OpenJDK Runtime Environment java.runtime.version = 1.7.0_181-b01 java.security.auth.login.config = C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.login.config java.security.policy = C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.policy java.specification.version = 1.7 java.system.class.loader = com.sas.app.AppClassLoader java.vendor = Azul Systems, Inc. java.version = 1.7.0_181 java.vm.name = OpenJDK 64-Bit Server VM java.vm.specification.version = 1.7 java.vm.version = 24.181-b01 sas.app.class.path = C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar sas.ext.config = C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.java.ext.config sas.jre.libjvm = C:\PROGRA~1\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll tkj.app.launch.config = C:\PROGRA~1\SASHome\SASVER~1\picklist user.country = US user.language = en

NOTE: PROCEDURE JAVAINFO used (Total process time): real time 0.03 seconds cpu time 0.01 seconds

michaelkilhullen commented 1 year ago

The CST jar is being added to the end of the jreoptions because it looks like you are passing the values as command line options rather than as a config file. Assuming this is your SAS installation (contact your admin if not), you need to add the CST configuration lines to your SASHome\SASFoundation\9.4\nls\en\sasv9.cfg file. If you look towards the top of this config file, you will see:

/* DO NOT EDIT BELOW THIS LINE - INSTALL Application edits below this line /

Add the cst options just before this and save. Remove the command line options. When this starts, it should assemble the jreoptions correctly. If you check it, the CST one should be listed first.

mooggsentry commented 1 year ago

This is as far as I have been able to get with the provided fixes. I have a feeling it's my version of Java within JRE since I have SAS 9.4 M5

Config File:

`/ set default locations / -TRAINLOC ""

/ set the default fileref for the PARMCARDS= option / -SET FT15F001 'FT15F001.DAT'

/---------------------------------------------------------------\ | SAS System FORMCHARS, used by pressing ALT then the decimal | | number for the Extended ASCII character. | ---------------------------------------------------------------/

/ This is the ANSI character set (for SAS Monospace font and ANSI Sasfont) / -FORMCHAR '82838485868788898A8B8C2B3D7C2D2F5C3C3E2A'x

/---------------------------------------------------------------\ | WARNING: INSTALL Application edits below this line. User | | options should be added above this box comment. | | INSTALL Application maintains and modifies the | | following options; -SASAUTOS, -SASHELP, -SASMSG, | | -PATH, and -MAPS. It also maintains and modifies | | the following CONFIG variables with the -SET option; | | INSTALL, USAGE, LIBRARY, SAMPSIO, SAMPSRC, SASCBT, | | and SASEXT01-SASEXT50. It preserves all lines above | | the line containing 'DO NOT EDIT BELOW THIS LINE'. | ---------------------------------------------------------------/ SET CSTHOME C:/cstFrameworkLibrary CSTGLOBALLIB C:/cstGlobalLibrary CSTSAMPLELIB C:/cstSampleLibrary insert sasautos '!CSTHOME/macros' JREOPTIONS (-Dsas.app.class.dirs=!CSTHOME/jar) SET CLASSPATH !CSTHOME/jar / note: this can alternatively be defined as an environment variable on the server / / DO NOT EDIT BELOW THIS LINE - INSTALL Application edits below this line / / / -SET SASROOT "C:\Program Files\SASHome\SASFoundation\9.4" -SET SASHOME "C:\Program Files\SASHome"

/ Options used when SAS is accessing a JVM for JNI processing / -JREOPTIONS=( -Dsas.app.class.dirs=C:\cstFrameworkLibrary\jar -DPFS_TEMPLATE=!SASROOT\tkjava\sasmisc\qrpfstpt.xml -Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR -Djava.security.auth.login.config=!SASROOT\tkjava\sasmisc\sas.login.config -Djava.security.policy=!SASROOT\tkjava\sasmisc\sas.policy -Djava.system.class.loader=com.sas.app.AppClassLoader -Dlog4j.configuration=file:/C:/Program%20Files/SASHome/SASFoundation/9.4/tkjava/sasmisc/sas.log4j.properties -Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar -Dsas.ext.config=!SASROOT\tkjava\sasmisc\sas.java.ext.config -Dsas.jre.libjvm=C:\PROGRA~1\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll -Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist -Xms128m -Xmx128m ) -HELPLOC (

    "!SASROOT\core\help"
    "!MYSASFILES\classdoc"
    )

-RESOURCESLOC (

    "!SASROOT\core\resource"
    )

-SET SASAUTOS (

    "!SASROOT\core\sasmacro"
    "!SASROOT\aacomp\sasmacro"
    "!SASROOT\accelmva\sasmacro"
    "!SASROOT\dmscore\sasmacro"
    "!SASROOT\hps\sasmacro"
    "!SASROOT\mlearning\sasmacro"
    )

-SASHELP (

    "!SASCFG\SASCFG"
    "!SASROOT\core\sashelp"
    "!SASROOT\aacomp\sashelp"
    "!SASROOT\af\sashelp"
    "!SASROOT\cas\sashelp"
    "!SASROOT\cmp\sashelp"
    "!SASROOT\mlearning\sashelp"
    "!SASROOT\spdsclient\sashelp"
    )

-MSG (

    "!SASROOT\core\sasmsg"
    "!SASROOT\accelmva\sasmsg"
    "!SASROOT\access\sasmsg"
    "!SASROOT\af\sasmsg"
    "!SASROOT\cas\sasmsg"
    "!SASROOT\cmp\sasmsg"
    "!SASROOT\mtrb\sasmsg"
    "!SASROOT\scoreaccel\sasmsg"
    "!SASROOT\spdsclient\sasmsg"
    )

-SET SAMPSIO (

    "!SASROOT\core\sample"
    "!SASROOT\access\sample"
    "!SASROOT\hps\sample"
    "!SASROOT\hpstat\sample"
    )

-SET SAMPSRC (

    "!SASROOT\core\sample"
    "!SASROOT\access\sample"
    "!SASROOT\hps\sample"
    "!SASROOT\hpstat\sample"
    )

-SET INSTALL (

    )

-PATH (

    "!SASROOT\core\sasexe"
    "!SASROOT\aacomp\sasexe"
    "!SASROOT\aastatistics\sasexe"
    "!SASROOT\accelmva\sasexe"
    "!SASROOT\access\sasexe"
    "!SASROOT\af\sasexe"
    "!SASROOT\analyticcmn\sasexe"
    "!SASROOT\baseui\sasexe"
    "!SASROOT\cas\sasexe"
    "!SASROOT\cmp\sasexe"
    "!SASROOT\dmscore\sasexe"
    "!SASROOT\econometrics\sasexe"
    "!SASROOT\etscomp\sasexe"
    "!SASROOT\forecast\sasexe"
    "!SASROOT\fsp\sasexe"
    "!SASROOT\hadoopbasics\sasexe"
    "!SASROOT\hps\sasexe"
    "!SASROOT\hpstat\sasexe"
    "!SASROOT\mlearning\sasexe"
    "!SASROOT\mtrb\sasexe"
    "!SASROOT\optimization\sasexe"
    "!SASROOT\prochttp\sasexe"
    "!SASROOT\scoreaccel\sasexe"
    "!SASROOT\spdsclient\sasexe"
    "!SASROOT\statcomp\sasexe"
    "!SASROOT\textmine\sasexe"
    "!SASROOT\tsmodel\sasexe"
    "!SASROOT\tsreconcile\sasexe"
    "!SASROOT\tstimeinfo\sasexe"
    )

-FONTSLOC C:\Windows\Fonts -SET MYSASFILES "?FOLDERID_Documents\My SAS Files\9.4" -SASUSER "?FOLDERID_Documents\My SAS Files\9.4" -WORK "!TEMP\SAS Temporary Files" -MEMSIZE 2G -SORTSIZE 1G -SET SASCFG "C:\Program Files\SASHome\SASFoundation\9.4\nls\en" -LOCALE en_US -ENCODING wlatin1 -TEXTURELOC !SASROOT\common\textures -SET SAS_NO_RANDOM_ACCESS "1" -SET SAS_ODSG_CRENDER_PATH "C:\Program Files\SASHome\SASODSGraphicsCRenderer\9.44" `

Java Check: `1 %put %sysget(CSTHOME); %put %sysget(CLASSPATH); C:/cstFrameworkLibrary !CSTHOME/jar 2 3 proc options option=cstgloballib option=cstsamplelib option=sasautos option=jreoptions; run;

SAS (r) Proprietary Software Release 9.4  TS1M5

CSTGLOBALLIB=C:/cstGlobalLibrary Specifies the location of the SAS Clinical Standards Toolkit global library. CSTSAMPLELIB=C:/cstSampleLibrary Specifies the location of the SAS Clinical Standards Toolkit sample library. SASAUTOS=( '!CSTHOME/macros' SASAUTOS ) Specifies the location of one or more autocall libraries. JREOPTIONS=( -Dsas.app.class.dirs=C:/cstFrameworkLibrary/jar -Dsas.app.class.dirs=C:\cstFrameworkLibrary\jar -DPFS_TEMPLATE=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\qrpfstpt.xml -Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR -Djava.security.auth.login.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.login.config -Djava.security.policy=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.policy -Djava.system.class.loader=com.sas.app.AppClassLoader -Dlog4j.configuration=file:/C:/Program%20Files/SASHome/SASFoundation/9.4/tkjava/sasmisc/sas.log4j.prop erties -Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar -Dsas.ext.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.java.ext.config -Dsas.jre.libjvm=C:\PROGRA~1\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll -Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist -Xms128m -Xmx128m ) Specifies the Java Runtime Environment options for SAS. NOTE: PROCEDURE OPTIONS used (Total process time): real time 0.01 seconds cpu time 0.01 seconds `

I've gotten the program to run as good as it possibly can without any errors except for the original Java Check after removing the command line options within the configuration file.

mooggsentry commented 1 year ago

Issue was addressed. Had to figure out how to run in Java 8 when SAS 9.4 M5 runs on JAVA 7