Exit programs can be written in assembler language only.
Exit programs must be reentrant, and capable of running anywhere in storage.
Exit programs must restore the environment on exit to that at entry, and
must free any storage obtained.
Exit programs must not WAIT, or issue ESTAEs or SPIEs.
Exit programs are usually invoked as if by z/OS LINK in:
Non-authorized problem program state
Primary address space control mode
Non cross-memory mode
Non access-register mode
31 bit addressing mode
TCB-PRB mode
When used by a CICS(R) application, the exit is invoked by EXEC CICS LINK, and must
conform to the CICS programming conventions. The parameters are passed
by pointers (addresses) in the CICS communication area (COMMAREA).
Although
not recommended, user exit programs can also use CICS API calls, with the following caution:
Do not issue syncpoints, as the results could influence units of work
declared by the MCA.
Do not update any resources controlled by a resource manager other than WebSphere MQ for z/OS,
including those controlled by CICS Transaction Server for OS/390.
For distributed queuing without CICS, the exit is loaded from the data set
referenced by the CSQXLIB DD statement.
For distributed queuing using CICS, data-conversion exits are not supported.