Where a JVM is constructed

Each JVM that CICS creates is constructed in its own Language Environment® enclave, to ensure isolation between JVMs running in parallel. The Language Environment enclave is created using the Language Environment preinitialization module, CEEPIPI, and the JVM runs as a z/OS UNIX process. The JVM therefore uses MVS™ Language Environment services rather than CICS Language Environment services. The storage used for a JVM is MVS storage, obtained by calls to MVS Language Environment services. This storage resides within the CICS address space, but is not included in the CICS dynamic storage areas (DSAs).

The Language Environment enclave for a JVM can expand, depending on the storage needs of the JVM. The Language Environment run-time options used by CICS for a Language Environment enclave control the initial size of, and incremental additions to, the Language Environment enclave heap storage. Within this overall allocation of storage, a JVM's storage heaps are created according to the settings in the JVM profile for the JVM. Storage heaps in a JVM explains how these storage heaps are arranged.

You can tune the run-time options that CICS uses for a Language Environment enclave, so that the amount of storage CICS requests for the enclave is as close as possible to the amount of storage specified by your JVM profiles. This makes the most efficient use of MVS storage. “Tuning Language Environment enclave storage for JVMs” in the CICS® Performance Guide tells you how to do this.