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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.