Some functions in SAS 9.1.3 require an installed version of Java on your z/OS system. For a list of those functions, please see System Requirements for SAS® Foundation for z/OS®.
In z/OS 1.11 operating environments, SAS 9.1.3 requires a Java level of 1.4.2 Service Refresh (SR) 13, Fix Pack (FP) 2 or higher. Running with Java 1.4.2 SR11 can result in a segmentation violation (system abend 0C4). Sites that have SAS 9.1.3 already installed might have installed a level of Java that is not compatible with z/OS release 1.11, therefore, this problem might occur.
If SAS attempts to use an earlier version of Java, an error similar to the following occurs:
IEA995I SYMPTOM DUMP OUTPUT SYSTEM COMPLETION CODE=0C4 REASON CODE=00000011 TIME=13.14.07 SEQ=51699 CPU=0000 ASID=0333 PSW AT TIME OF ERROR 078D2000 9B1F7318 ILC 2 INTC 11 NO ACTIVE MODULE FOUND NAME=UNKNOWN DATA AT PSW IS UNAVAILABLE AT THIS TIME GR 0: 803FC21E 1: 1B219F20 2: 000D1370 3: 1B1F7318 4: 1A091F08 5: 1A091930 6: 19E80FE0 7: 9B1F721A 8: 00000001 9: 00000002 A: 19F0FF88 B: 1AF11148 C: 000D1098 D: 1B219DC0 E: 9A091DCC F: 1B1F7318 END OF SYMPTOM DUMP BPXP018I THREAD 23AE460000000087, IN PROCESS 16844113, ENDED WITHOUT BEING UNDUBBED WITH COMPLETION CODE 840C4000 , AND REASON CODE 00000011.
To determine the level of Java that is enabled for use with SAS 9.1.3, run the following code in a SAS session (either TSO or a batch job):
proc javainfo; run;
Note that this session or batch job must be executed from an address space that has a region of at least 500 MB. If SAS has been configured to work with Java, the data set that is allocated to the ddname TKMVSENV defines an environment variable, TKJNI_OPT_LIBPATH, that contains the location of the Java directories. The location is similar to the following:
In the previous example that directory is /usr/lpp/java/bin.
The results should look similar to the following:
java version "1.4.2" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2) Classic VM (build 1.4.2, J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142i fx-20090918 (SR13 FP2) (JIT enabled: jitc))
The text that is shown above in bold should indicate a level of SR13 FP2 or higher.
If you are already running under z/OS 1.11 and you have an earlier version of Java installed, an error similar to the following is returned:
CEE3204S The system detected a protection exception (System Completion Code=0C4) From compile unit /u/sovbld/142/builds/cm142/cm142-20080517/src/hpi/pfm/threads_md.c at entry point sysThreadBootstrap at statement 2430 at compile unit offset +0000070E at entry offset +0000070E at address 79B2B0F6. Ý1¨ + Done(139) ./java -version 33622023 Segmentation violation ./java
SAS does not use the default environment variable JAVA_HOME because there might be multiple versions of Java available at a site and SAS requires different versions of Java with different releases of SAS.
The following JCL provides an example that you can use to verify the Java release in batch mode:
//* Create temporary shell script to be STDIN for USS environment in BATCH //USSCMDS EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //SCRIPT DD * cd /usr/lpp/java/J5.0/bin java -version /* //SYSTSIN DD * ALLOC FILE(OUTPUT) + PATH('/tmp/javaver.sh') + PATHOPTS(OWRONLY,OCREAT) PATHMODE(SIRUSR,SIWUSR) OCOPY INDD(SCRIPT) OUTDD(OUTPUT) TEXT /* //* Run BATCH USS process to execute temporary shell script //JAVAVER EXEC PGM=BPXBATCH,PARM='SH' //STDIN DD PATH='/tmp/javaver.sh', // PATHOPTS=(ORDONLY) //STDERR DD SYSOUT=* //STDOUT DD SYSOUT=* //* Delete temporary shell script file //CLEANUP EXEC PGM=IEFBR14 //DD1 DD PATH='/tmp/javaver.sh', // PATHOPTS=ORDONLY,PATHDISP=DELETE
The preceding sample JCL has three steps. You should add a valid JOB card for your site and set the path in the cd command to the location of your Java release. The job steps are:
This step runs batch mode TMP (TSO in batch mode). SYSTSIN (TSO input) allocates temporary space for shell scripts that contain USS commands, and then OCOPY runs (OMVS Copy) from a file-reference (ddname) script to a temporary file reference (ddname) OUTPUT, which is a UNIX file-system (HFS or ZFS) path specification.
This step runs USS batch mode with the shell-command processing (SH) parameter passed. STDIN (batch USS input) requires a UNIX file-system file designation, if you are designating a file system. You can also specify the commands as part of the parameter string. STDOUT and STDERR can be UNIX file-system specifications, native z/OS file specifications, or spool output (SYSOUT). The output from the execution is written to STDERR.
This step deletes the temporary UNIX file-system file as it is no longer needed.
See IBM APAR PK79199 for information about this problem with Java 1.4.2 under z/OS 1.11.
The Third Party Software Requirements for use with SAS® Products page has links that provide access to compatible levels of Java. Select and download the release that is appropriate for your installation.
Product Family | Product | System | SAS Release | |
Reported | Fixed* | |||
SAS System | N/A | z/OS | 9.1 TS1M3 |
Type: | Usage Note |
Priority: |
Date Modified: | 2011-10-20 09:33:06 |
Date Created: | 2009-12-14 12:14:23 |