RACF® commands can run in
the RACF subsystem address
space instead of the user's address space. RACF commands run in the RACF subsystem address space when:
- They are directed using command direction or automatic command
direction.
- They are issued as operator commands.
Application updates can also run in the RACF subsystem address space instead of the
user's address space when they are automatically directed. Application
updates that invoke exits include:
- RACROUTE REQUEST=DEFINE
- RACDEF
- RACROUTE REQUEST=EXTRACT,TYPE=REPLACE
- RACXTRT specifying TYPE=REPLACE
An installation exit that is sensitive to where it is running can
check the ACEERASP bit in the ASXB-level ACEE to determine whether
it has gained control in the RACF subsystem
address space. Some examples of
situations where exits must be sensitive to where they are running
are:
- When an exit associated with a command runs in the user's address
space, it can issue a message to the user by way of TPUT or PUTLINE
(for a command issued by a TSO user) or via PUTLINE or WTO (for a
command issued by a batch TSO job). However, if the command is running
in the RACF subsystem address
space, only PUTLINE works. For exits ICHCCX00 and ICHCNX00, RACF provides sufficient information
to allow an exit to use PUTLINE. For exit IRREVX01 and IRRVAF01, RACF provides a message area where
the exit can provide text to be inserted in a message. Exits other
than these should recognize when they are running in the RACF subsystem address space and avoid trying
to communicate with the user.
- If an exit wants to find the user's ACEE and it is running in
the user's address space, it can generally use the ASXBSENV pointer
to find the address-space-level ACEE, and can ignore the TCBSENV pointer
(TCB-level ACEE). This is not correct programming, but
generally works. However, if the exit is running in the RACF subsystem address space, the exit must first
look for a TCB-level ACEE if it needs to find the user's ACEE.