Partition initialization (Language Environment enablement)
Enablement of Language Environment is performed by a partition initialization call to the Language Environment-CICS interface module during CICS® initialization. CICS loads (OS conditional load) and calls the Language Environment-CICS interface module (CEECCICS) during the system initialization. CEECCICS must be in an authorized data set for the OS LOAD to be successful.
If CICS cannot load the Language Environment-CICS interface module no message is issued and processing continues without Language Environment. If the Language Environment partition initialization fails, CICS outputs a message quoting the reason code that is returned by Language Environment and continues processing as if Language Environment is not present.
The Language Environment-CICS interface module communicates with CICS with ERTLI and EXEC CICS commands and with Language Environment with standard CALLs to enable and maintain the Language Environment environment. Another similar interaction disables the Language Environment environment in response to CICS shut-down processing.
The Language Environment-CICS interface module remains in storage to support communication between CICS and Language Environment as long as Language Environment is enabled.
Syntax
Call CEECCICS (10, rsncode, syseib, preasa, ptoken, eiblen, twalen, cellevel, getcaa, setcaa, partinit_flags, langavl) Retcode (rc)
- rsncode (output)
- A fullword integer in nnnffrr format to contain the member
language-specific partition initialization reason code or one of the following Language Environment
reason codes:
- 11000
- Invalid parameter was passed
- 11010
- Storage was not available
- 11020
- The library was not loaded
- 11030
- Language-specific partition initialization was not done
- syseib
- The system EXEC interface block, as defined by CICS. This control block contains information about running the CICS commands issued by Language Environment. There is no need to save and restore the user EIB around the commands issued by Language Environment. The system EIB address is above 16M.
- preasa
- A preallocated save area to be used by Language Environment to issue its first EXEC CICS GETMAIN command. The size of this save area is same as the size of DFHEISTG (248 bytes).
- ptoken (output)
- A doubleword value to contain a token representing the Language Environment partition environment.
- eiblen
- A fullword integer containing the system EIB length.
- twalen (output)
- A fullword integer that contains the length of the preallocated thread work area. This work area is allocated by CICS from the user (task local) RMODE(ANY) storage for each thread, and passed to the Language Environment-CICS interface at thread initialization. The work area address is above 16M. You can return a length equal to 0. In this case, you must acquire the thread work area (if one is required) during thread initialization using EXEC CICS GETMAIN command.
- cellevel (output)
- A fullword integer that contains the Language Environment-CICS interface level.
- getcaa
- The CICS specific GET_CAA routine address. This routine returns the CAA address of the current run unit. It runs in AMODE=ANY,RMODE=24.
- setcaa
- The CICS specific SET_CAA routine address. This routine is called to set the current run unit's CAA address in a CICS control block for a later retrieval with GET_CAA routine. It runs in AMODE=ANY,RMODE=24.
- partinit_flags (input/output) * Formerly 'langdef' *
- A 32 byte flag field used to communicate interface information between CICS and Language
Environment. The structure is depicted in Figure 1.
Figure 1. Structure of interface flags field DCL 1 PARTINIT_FLAGS, /* CICS/Lang Env interface flags */ /* */ 2 CICS_FLAGS BIT(128), /*+00 CICS interface level flags */ 3 CICS_PROG_OBJ BIT(1), /* .00 CICS supports program objs */ 3 Reserved BIT(1), /* .01 Reserved for CICS */ 3 CICS_OTE_PHASE1 BIT(1), /* .02 CICS is at Phase I of OTE */ 3 CICS_REUSE_RWA BIT(1), /* .03 CICS supports reusable RWAs */ 3 CICS_OTE_PHASE2 BIT(1), /* .04 CICS is at Phase II of OTE */ 3 CICS_LDMDNAME BIT(1), /* .05 CICS provides program name */ 3 CICS_AUTOTUNE BIT(1), /* .06 CICS supports automatic storage*/ /* tuning. */ 3 CICS_AUTOTUNE_SET BIT(1), /* .07 CICS indicates automatic stg */ /* tuning should be done. This bit*/ /* valid only if AUTOTUNE is ON. */
3 CICS_RE BIT(1), /* .08 CICS supports reusable enclaves*/ 3 Reserved BIT(1), /* .09 Reserved for CICS */ 3 CICS_TRAN BIT(1), /* .10 CICS indicates transaction dump*/ /* service routines are available.*/ 3 * BIT(1), /* .11 Reserved */ 3 CICS_DBGINFO BIT(1), /* .12 CICS indicates it can pass */ /* A(Debug info blk) in pgminfo1 */ 3 * BIT(1), /* .13 Reserved */ 3 CICS_EXT_REG BIT(1), /* .14 CICS supports extended register*/ /* interface in Run Unit (program)*/ /* End Invocation TERMINFO area */ 3 CICS_VR_SPT BIT(1), /* .15 CICS supports vector register */ /* interface in Run Unit (program)*/ /* End Invocation TERMINFO area */ 3 CICS_IEP_SPT BIT(1), /* .16 CICS IEP supports */ 3 * BIT(1), /* .17 Reserved for CICS */ 3 Reserved BIT(110),/* Reserved for future use */ /* */ 2 LE_FLAGS BIT(128), /*+10 Lang Env interface level flags */ 3 LE_PROG_OBJ BIT(1), /* .00 Lang Env supports program objs */ 3 Reserved BIT(1), /* .01 Reserved for CICS */ 3 LE_OTE_PHASE1 BIT(1), /* .02 Lang Env is at Phase I of OTE */ 3 LE_REUSE_RWA BIT(1), /* .03 Lang Env supports reusable RWAs*/ 3 LE_OTE_PHASE2 BIT(1), /* .04 Lang Env is at Phase II of OTE */ 3 LE_LDMDNAME BIT(1), /* .05 Set by Lang Env. Indicates that*/ /* needs the address of the load */ /* module name in pgminfo1 (for */ /* storage tuning exit). */ 3 LE_AUTOTUNE BIT(1), /* .06 Lang Env supports automatic */ /* storage tuning. */ 3 LE_AUTOTUNE_SET BIT(1), /* .07 Lang Env indicates automatic */ /* storage tuning will be done. */ 3 LE_RE BIT(1), /* .08 Lang Env supports reus enclaves*/ 3 Reserved BIT(1), /* .09 Reserved for CICS */ 3 LE_TRAN BIT(1), /* .10 Lang Env indicates the trans */ /* dump service routines required */ /* available. */ 3 * BIT(1), /* .11 Reserved */ 3 LE_DBGINFO BIT(1), /* .12 Lang Env indicates it supports */ /* copy A(Debug info blk) to PCB */ 3 * BIT(1), /* .13 Reserved */ 3 LE_EXT_REG BIT(1), /* .14 Lang Env supports extended */ /* register interface in Run Unit */ /* (program) End Invocation */ /* TERMINFO area */ 3 LE_VR_SPT BIT(1), /* .15 Lang Env supports vector */ /* register interface in Run Unit */ /* (program) End Invocation */ /* TERMINFO area */ 3 LE_IEP_SPT BIT(1), /* .16 Lang Env supports IEP */ 3 * BIT(1), /* .17 Reserved for CICS */ 3 Reserved BIT(110);/* Reserved for future use */ /* */
- langavl (output)
- A fullword binary value to contain bit settings for the languages that provide a Language
Environment-CICS member event handler (CEEEVnnn) capable of handling both the existing (non-Language
Environment-enabled) application programs as well as the new (Language Environment-enabled)
application programs running in CICS environment. CICS uses this information to decide whether to interface with
Language Environment or continue to interface with the languages directly as before (prior to
Language Environment). Bit definitions are:
Value of Bit0 (far left bit): 1=Assembler member event handler (CEEEV015) is available 0=Assembler member event handler (CEEEV015) is not available Value of Bit1 1=C or C++ member event handler (CEEEV003) is available 0=C or C++ member event handler (CEEEV003) is not available Value of Bit2 1=COBOL member event handler (CEEEV005) is available 0=COBOL member event handler (CEEEV005) is not available Value of Bit3 1=PL/I member event handler (CEEEV010) is available 0=PL/I member event handler (CEEEV010) is not available
Usage notes
- Bit 3 (fourth bit) of the CICS_FLAGS parameter on partition_initialization is set by CICS to indicate that CICS supports reusable run unit work areas (RRWA). This bit maps to an existing structure in the RCB. It is reserved and called CEERCB_CICS_RRWA_OK. This bit can then be tested by Language Environment or its members to determine whether this environment is supported.
- Bit 5 (sixth bit) of the CICS_FLAGS parameter on partition_initialization is set by CICS to indicate that CICS provides the address of the load module name in pgminfo1. If the CICS support to provide the program name is not available, the address of the program name passed to the storage tuning user exit in the CEESTX CICS specific control block is zero.
- LE_FLAGS bit 3 is set by CEECPINI (Partition initialization) to signify that Language Environment supports the interface changes including the reusable run unit work area.
- If CICS is running at a higher level than Language Environment, then Language Environment will run and CICS will descend to match the Language Environment level.
- If Language Environment detects CICS is running at a lower level than Language Environment, then Language Environment will deactivate all higher level functions in order to match the CICS level.
- Bit 6 (TUNE_SUP) of the CICS_FLAGS parameter on partition_initialization is set by CICS to indicate that CICS
has the support for automatic storage tuning. When this bit is on:
- The value in Bit7 (LE_AUTODST) will indicate the setting for system initialization parameter AUTODST.
- CICS provides a pointer to a 96-byte area in
pgminfo2.
- CICS provides support for the new bit in
pgminfo2
that indicates to CICS to update its sizes for RUWA and the 96-byte area at rununit termination.