gtpi1m5aSystem Installation Support Reference

TPF MQSeries Channel Message Retry

The TPF MQSeries channel message retry user exit (rriCALL_MREXIT in segment CUIT) allows you to try to put a message to a destination queue if a previous attempt failed. rriCALL_MREXIT is called by the TPF MQSeries queue manager when a channel starts, stops, and when the message channel agent (MCA) is not able to put a message to a destination queue. This exit is only valid for a receiver-type channel.

Input

pExitParms
A pointer to the MQCXP data structure in c$cmqxc.h that contains the channel exit parameters (ExitID and ExitReason).

pChannelDef
A pointer to the MQCD data structure in c$cmqxc.h that contains the channel definition parameters.

DataLength
A received message indicator. The length of the message (including the transmission queue header). If DataLength contains a nonzero number, a message has been received.

pAgentBufferLength
The length of the agent buffer.

AgentBuffer
The transmission queue header (MQXQH in cmqc.h), which includes the message descriptor followed by the message data.

Programming Considerations

Return Values

Set one of the following exit response codes in the ExitResponse field in the MQCXP structure in c$cmqxc.h:

MQXCC_OK
Continue normally.

MQXCC_CLOSE_CHANNEL
Close the channel.

MQXCC_SUPPRESS_EXIT
Suppresses calls to this user exit unless the call is to end the channel connection (ExitReason MQXR_TERM).

MQXCC_SUPPRESS_FUNCTION
Do not retry the message; put the message on the dead-letter queue.
Note:
Any other value passed in the ExitResponse field will cause the channel to be closed.

Set the following exit response code in the ExitResponse2 field in the MQCXP structure in c$cmqxc.h:

MQXR2_USE_EXIT_BUFFER
Use the exit buffer. This indicates that any data to be passed is in ExitBufferAddr, not AgentBuffer.
Note:
Any other value passed in the ExitResponse2 field will cause the channel to be closed.