The pre-routing exit DFSYPRX0
This topic contains a sample pre-routing exit for OTMA in IMS.
You must first code a pre-routing exit DFSYPRX0. See OTMA Destination Resolution user exit (DFSYPRX0 and other OTMAYPRX type exits) for parameters passed to this routine by IMS.
This exit tests whether the message is intended for a known OTMA destination (in our example
VCPEVCPE). If it is, the exit must check whether the transaction sending the message originated in
OTMA. If the message originated in OTMA, it will have an OTMA header, so you should exit from
DFSYPRX0 with register 15 set to zero.
- If the transaction sending the message did not originate in OTMA, you must set the client name to be a valid OTMA client. This is the XCF member-name of the IBM® MQ queue manager to which you want to send the message. You should set your client name (in the OTMACON parameter of the CSQ6SYSP macro) is set to the queue manager name. This is the default. You should then exit from DFSYPRX0 setting register 15 to 4.
- If the transaction sending the message originated in OTMA, and the destination is non-OTMA, you should set register 15 to 8 and exit.
- In all other cases, you should set register 15 to zero.
If you set the OTMA client name to one that is not known to IMS, your application CHNG or ISRT call returns an A1 status code.
For an IMS system communicating with more than one IBM MQ queue manager, you should repeat the logic for each IBM MQ queue manager.
Sample assembler code is shown in Figure 1: