Modifying the enclave of a JVM server with DFHAXRO

DFHAXRO is a sample program that provides a default set of runtime options for the Language Environment® enclave in which a JVM server runs. For example, it defines storage allocation parameters for the JVM heap and stack. It is not possible to provide default runtime options that are optimized for all workloads. Consider identifying actual storage usage, and override the defaults as required, to optimize the ratio of used storage to allocated storage.

About this task

You can update the sample program to tune the Language Environment enclave or you can base your own program on the sample. The program is defined on the JVMSERVER resource and is called during the CELQPIPI preinitialization phase of the Language Environment enclave that is created for a JVM server.

You must write the program in assembly language and it must not be translated with the CICS® translator. The options are specified as character strings, comprising a 2-byte string length followed by the runtime option. The maximum length for all Language Environment runtime options is 255 bytes, so use the abbreviated version of each option and restrict your changes to a total of under 200 bytes.

Procedure

  1. Copy the DFHAXRO program to a new location to edit the runtime options.
    If maintenance is applied to your CICS region, you might want to reflect the changes in your program. The source for DFHAXRO is in the CICSTS53.CICS.SDFHSAMP library.
  2. Edit the runtime options, using the abbreviation for each option.
    The z/OS Language Environment Programming Guide has complete information about Language Environment runtime options.
    • Keep the size of the list of options to a minimum for quick processing and because CICS adds some options to this list.
    • Use the HEAP64 option to specify the initial heap allocation.
    • The ALL31 option, the POSIX option, and the XPLINK option are forced on by CICS. The ABTERMENC option is set to (ABEND) and the TRAP option is set to (ON,NOSPIE) by CICS.
    • The output that is produced by the RPTO and RPTS options is written to the CESE transient data queue.
    • Any options that produce output do so at each JVM termination. Consider the volume of output that might be produced and directed to CESE.
  3. Use the DFHASMVS procedure to compile the program.

Results

When you enable the JVMSERVER resource, CICS creates the Language Environment enclave by using the runtime options that you specified in the DFHAXRO program. CICS checks the length of the runtime options before it passes them to Language Environment. If the length is greater than 255 bytes, CICS does not attempt to start the JVM server and writes error messages to CSMT. The values that you specify are not checked by CICS before they are passed to Language Environment.