ADDRESS

Obtain access to CICS® storage areas.

Read syntax diagramSkip visual syntax diagram
ADDRESS

>>-ADDRESS -+---------------+--+-------------------+------------>
            '-ACEE(ptr-ref)-'  '-COMMAREA(ptr-ref)-'   

>--+--------------+--+--------------+--+----------------+------->
   '-CWA(ptr-ref)-'  '-EIB(ptr-ref)-'  '-TCTUA(ptr-ref)-'   

>--+--------------+--------------------------------------------><
   '-TWA(ptr-ref)-'   

This command is threadsafe.

Note for dynamic transaction routing: Using ADDRESS with CWA could create inter-transaction affinities that adversely affect the use of dynamic transaction routing. See Affinity for more information about transaction affinities.

Description

ADDRESS accesses the following areas:
  • The access control environment element (ACEE)
  • The communication area available to the invoked program (COMMAREA)
  • The common work area (CWA)
  • The EXEC interface block (EIB)
  • The terminal control table user area (TCTUA)
  • The transaction work area (TWA)

In assembler language, no more than four options may be specified in one ADDRESS command.

Options

ACEE(ptr-ref)
returns a pointer to the access control environment element, the control block that is generated by an external security manager (ESM) when the user signs on. If the user is not signed on, the address of the CICS DFLTUSER's ACEE is returned. If an ACEE does not exist, CICS sets the pointer reference to the null value, X'FF000000'.

For information on how to map the ACEE data area, see the mapping macro IHAACEE supplied in SYS1.MACLIB.

Note: Take care when addressing an ACEE in a server program invoked by a distributed program link. The ACEE address returned depends on the link security and may not be the same as the address of the user signed on at the local system.
COMMAREA(ptr-ref)
returns a pointer reference, set to the address of the communication area (COMMAREA) available to the currently executing program. COMMAREA is used to pass information between application programs. If the COMMAREA does not exist, the pointer reference is set to the null value, X'FF000000'.

In C, you must use ADDRESS COMMAREA to get the address of the communication area, because this is not passed as an argument to a C main function.

CWA(ptr-ref)
returns a pointer reference, set to the address of the common work area (CWA). This area makes information available to applications running in a single CICS system. If a CWA does not exist, CICS sets the pointer reference to the null value, X'FF000000'.
EIB(ptr-ref)
returns a pointer reference set to the address of the EXEC interface block (EIB). You must use this option to get addressability to the EIB in application routines other than the first invoked by CICS (where addressability to the EIB is provided automatically). If the application program is translated with SYSEIB in the XOPTS parameter list, this option returns the address of the system EIB.

If TASKDATALOC(ANY) is defined on the transaction definition, the address of the data may be above or below the 16MB line.

If TASKDATALOC(BELOW) is defined on the transaction definition, and the data resides above the 16MB line, the data is copied below the 16MB line, and the address of this copy is returned.

C functions must use ADDRESS EIB to get the address of the EXEC interface block, because this address is not passed as an argument to a C main function. You must code an ADDRESS EIB statement at the beginning of each application if you want access to the EIB, or if you are using a command that includes the RESP or RESP2 option.

TCTUA(ptr-ref)
returns a pointer reference, set to the address of the terminal control table user area (TCTUA) for the principal facility, not that for any alternate facility that may have been allocated. This area is used for passing information between application programs, but only if the same terminal is associated with the application programs involved. If a TCTUA does not exist, the pointer reference is set to the null value, X'FF000000'.
TWA(ptr-ref)
returns a pointer reference, set to the address of the transaction work area (TWA). This area is used for passing information between application programs, but only if they are in the same task. If a TWA does not exist, the pointer reference is set to the null value, X'FF000000'.

If TASKDATALOC(ANY) is defined on the transaction definition, the address of the data may be above or below the 16MB line.

If TASKDATALOC(BELOW) is defined on the transaction definition, and the data resides above the 16MB line, the data is copied below the 16MB line, and the address of this copy is returned.



dfhp4_address.html | Timestamp icon Last updated: Thursday, 27 June 2019