Message data is presented to exit IXZXIT02, through mapping macro
IXZ$XPL, by a pair of fields:
- XIT02_MESSAGE provides a pointer to the message data
- XIT02_MESSAGE_LEN provides the length of that data.
To change the data, your exit routine must:
- Obtain storage to contain the new copy of the data
This storage
must be obtained from subpool 0. That is, do not specify
a subpool. (IBM recommends using the STORAGE macro rather than $GETMAIN
(for JES2) or AGETMAIN (for JES3) when obtaining this storage.)
- Save the address of that storage in XIT02_MESSAGE_UPADDR
- Save the length of that storage in XIT02_MESSAGE_UPLEN
- Update XIT02_MAX_ADD in IXZ$XPL to reflect the message size
change. XIT02_MAX_ADD contains the maximum number of bytes that
can still be added to a message packet. Be certain to decrease its
size as the message packet grows.
- Copy the data into the storage and change the data as required
- Set the indicator bit, XIT02_MESSAGE_UP, in IXZ$XPL to inform
JES XCF of the changes.
JES XCF delivers the revised message rather than the original message
data. Following message processing, JES XCF frees the storage obtained
by this exit.