Obtain access to CICS® storage areas.
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.