DFSJVMEV (JVM environment settings member)
The DFSJVMEV member of the IMS PROCLIB data set is a sample member that is supplied in the IMS sample library (the SDFSSMPL data set). Use this member to specify the Java™ virtual machine (JVM) environment settings and to capture JVM usage statistics.
The DFSJVMEV member is contained in a data set that is concatenated in the PROCLIB DD. This member is optional and is read during dependent region application scheduling, thus, making this member dynamic. You do not need to bring down IMS for changes to this member to take effect.
When you use the //STDENV DD statement to define Java environment parameters and options, IMS ignores the DFSJVMEV member. Specify the Java configurations in the shell script that is referenced by the //STDENV DD statement when the statement is present.
Environment variables in the form of X=Y, where X is the environment variable and Y is the value of the environment variable, can
be specified. For example, you can specify: JAVA_DUMP_OPTS=ONINTERRUPT(ALL),ONANYSIGNAL(ALL)
in the member, and IMS sets the environment variable JAVA_DUMP_OPTS
to the value
ONINTERRUPT(ALL),ONANYSIGNAL(ALL)
.
Comments are supported for this member and must begin with an asterisk (*) in the first column. Each line in this member must not be longer than 72 bytes. There must be no space between the equal sign (=) and the beginning of the path name. To mark the continuation of a line, place the greater-than sign (>) at the end of the line. Path name strings are restricted to 255 bytes. A path name string can be one path name or several path names that are separated by a colon (:). The portion of the path name string greater than 255 bytes is ignored.
To use the DFSJVMEV member to capture JVM usage statistics, specify the JLEOPT=N parameter to indicate that a persistent JVM is used for the IMS dependent region. You must also use the SMFINTERVAL parameter to specify the time interval in milliseconds that is used to log JVM statistics. 6000 is the recommended value.
Parameters
- CANCEL_PGM=Y | N(,EXCLUDE=proclib_member_name)(,APPTERMEXIT=exit_name)
- Specifies whether (Y) or not (N) you want IMS to 'clean up' your
COBOL programs and subprograms per commit cycle and across application program schedules. The
default is N.If CANCEL_PGM=Y is specified, IMS ensures that the next time the referenced program or subprogram is called, it will be entered in its initial state. In addition, all programs that are contained within the program being canceled are also canceled such that the working storage areas will be cleaned up for the next program execution.Note: If the CANCEL_PGM=Y parameter is specified, the program modules that are specified on the DFSMPLxx member are deleted from working storage areas after the program has run. For the program modules that are specified on the DFSMPLxx member to remain loaded when CANCEL_PGM=Y is specified, use the EXCLUDE=proclib_member_name parameter with CANCEL_PGM=Y to exclude the program modules from the delete process.
If CANCEL_PGM=N is specified or is allowed to default to N, IMS will not 'clean up' the program and all its subprograms that it invoked during execution such that the working storage areas will remain intact for the next program execution.
For CANCEL_PGM=Y:- An optional exclude list can be specified in the form CANCEL_PGM=Y,EXCLUDE=proclib_member_name. The user can specify (sub)program names in this list to have IMS exclude the named (sub)programs from the cancel process. All other (sub)programs that are not specified in the list will be canceled. The exclude list is a PROCLIB member. Each name specified in the list must be on a separate line. You can specify comments in the list by placing an asterisk ('*') in the first column. You can specify a maximum of 100 (sub)program names.
- An optional user exit can be specified in the form CANCEL_PGM=Y,APPTERMEXIT=exit_name. This user exit is invoked after the program has terminated and returned to IMS, but before the 'clean up' process is initiated as described by the CANCEL_PGM=Y option. This user exit must be written in a Language Environment conforming language such as COBOL or assembly language. This user exit is given control by IMS in the Language Environment enclave that is created for the Persistent JVM environment. The value that is specified for exit_name must be between one and eight bytes. As a usage example, this exit can be used to 'clean up' any LE HEAP storage used by the program environment.
- Both EXCLUDE= and APPTERMEXIT= can be specified at the same time separated by commas and in either order. For example,
you can specify either of the following:
CANCEL_PGM=Y,EXCLUDE=member_name,APPTERMEXIT=exit_name CANCEL_PGM=Y,APPTERMEXIT=exit_name,EXCLUDE=member_name
- DB2JCC_CONN_REUSE= Y | N
- Specifies whether (Y) or not (N) you want IMS to communicate to DB2 JCC that the DB2 JCC
connection should be reused if possible for the next transaction. The default is N.
This option is recognized only for MPP, BMP, and IFP regions.
Note: If DB2JCC_CONN_REUSE=Y is specified, the DB2 JCC connection will be reused only if the transaction user ID for the next transaction is the same as the userid for the previous transaction.Restriction: If DB2JCC_CONN_REUSE=Y is specified in the IMS dependent region ENVIRON member for an MPP/BMP/IFP, IMS and DB2 JCC provide connection reuse across unit of recovery (UOR) boundaries in a scheduled application. After the application is unscheduled, the DB2 JCC connections that are obtained within it are not eligible for reuse.There can be multiple UORs within a unit of work (UOW). A UOW boundary occurs when an application is unscheduled because the application goes through termination.
If DB2JCC_CONN_REUSE=Y is specified and any of the following is true, DB2 JCC connection reuse will not occur:
- A PROCLIM=0|1 setting for a transaction results in a single UOR, regardless of a message GU loop. The application immediately goes through termination, resulting in a new UOW and negating any connection reuse.
- Not having multiple UORs within a scheduled application. This translates to not having a message GU loop because each message GU results in a UOR.
- A different user ID is associated with a subsequent UOR. In this case, the connections must be reestablished for security purposes.
- JLEOPT= Y | N
- Specifies whether (Y) or not (N) you want IMS to terminate the IBM® Language Environment® for z/OS® (LE) enclave and reinitialize the Language Environment enclave after each application program schedule. This would enable (or not) the Language Environment dynamic runtime parameter overrides for each application program that is scheduled in the dependent region.
- LIBPATH=
- Required variable that must specify the environment variable. There must not be a space between the equal sign (=) in the
LIBPATH= and the beginning of the first path name. The LIBPATH= parameter must contain a list of directories, separated by colons, that includes the locations of:
- The libjvm.so or the libjvm31.so (31/64-bit interoperability) and libwrappers.so libraries (DLLs).
- The Java class libraries for IMS (libT2DLI.so).
The LIBPATH= must point to the Java runtime libraries that match the addressing mode specified on the JVM= parameter of the dependent region procedure: 31-bit Java installation for JVM=31, and 64-bit Java installation for JVM=64 or JVM=3164.
- SMFINTERVAL=
- Specifies the time interval in milliseconds that is used to log JVM statistics. The statistics are logged in z/OS SMF as a type-29, subtype-2 record. 6000 is the recommended value.
- UMASK=xxx
- Specifies the umask value to set the file permission bits when you create files in JVM for the persistent JVM dependent
region, such as Java Message Processing (JMP) regions or Message Processing Program (MPP) regions.
xxx is a 3-digit octal number, for example, UMASK=002 or UMASK=644. The default umask value is specified in the /etc/profile system configuration file. For more information about the umask values, see the z/OS UNIX System Services User's Guide.
- ESAF_SIGNON_ACEE= YES | NO
- Specifies whether (YES) or not (NO) you want the IMS system to create the accessor environment element (ACEE) to be passed to
the external subsystem (ESS) during External Subsystem Attach Facility (ESAF) signon processing. The default is NO.If YES is specified, the following conditions occur:
- The IMS system creates and manages the ACEE in a persistent Java virtual machine (JVM) dependent region for ESAF thread instead of the ESS creating and managing the ACEE for every ESAF call.
- The IMS system creates the ACEE only once for the ESAF thread commit cycle and passes the ACEE to the ESS through the Signon exit routine.
- The ACEE is used only within the ESS and is not used for any other processing that the ESAF thread performs. For example, you can specify ESAF_SIGNON_ACEE=YES in a SECURE OTMA CHECK environment, while the SECURE OTMA CHECK specification is still valid in all processing that is unrelated to the ESS.
- When this function is enabled for the dependent region, message DFS549I is issued.
- DB2JCC_ESAF_THREAD_NOTIFICATION= YES | NO
-
Specifies whether (YES) or not (NO) you want the IMS system to inform DB2 for z/OS JCC driver of the ESAF thread in process in any application that executes in the IMS dependent region. The default is NO. If you specify YES, you must also set the external subsystem module table (ESMT) to DSNMIN20 in the SSM= parameter. Learn more at SSM= parameter for procedures.
YES must be specified if the application that executes in the IMS dependent region is issuing JCC calls and DB2 IMS attachment connection pooling is enabled between Db2 for z/OS and the IMS system.
If YES is specified, DB2 JCC can reuse prepared statements for the ESAF thread in a DB2 ESAF connection pooling environment.
DFSJVMEV example
In the following DFSJVMEV example, the first two paths that are specified point to the Java Version 7.0 runtime libraries that are located in the z/OS UNIX System Services file system. The third path specifies the location of the libT2DLI.so file, which points to the Java native code for IMS type-2 Java connectivity. The libT2DLI.so file is created in the UNIX System Services file system when running the IMS Installation Verification Program for Java scenarios.
**********************************************************************
* Specify the location of 31-bit Java Virtual Machine (JVM)
* installation and IMS Java native code (libT2DLI.so)
**********************************************************************
LIBPATH=>
/javaroot/java170/J7.0/lib/:>
/javaroot/java170/J7.0/lib/s390/j9vm:>
/usr/lpp/ims/lib
For dependent regions that are started with JVM=64 or JVM=3164, the LIBPATH= must point to the 64-bit Java runtime libraries. For JVM=3164 the minimum requirement is Java 8.
**********************************************************************
* Specify the location of the 64-bit Java Virtual Machine (JVM)
* installation (libjvm.so or libjvm31.so) and IMS Java native
* code (libT2DLI.so)
**********************************************************************
LIBPATH=>
/javaroot/java180/J8.0_64/lib:>
/javaroot/java180/J8.0_64/lib/s390x/j9vm:>
/usr/lpp/ims/lib