The MQTXP structure describes the information that is passed to the transport retry exit.
This structure is supported in the following environments: AIX.
Structure identifier.
For the C programming language, the constant MQTXP_STRUC_ID_ARRAY is also defined; this has the same value as MQTXP_STRUC_ID, but is an array of characters instead of a string.
This is an input field to the exit.
Structure version number.
The following constant specifies the version number of the current version:
This is an input field to the exit.
Reserved.
This is a reserved field. The value is zero.
Reason for invoking exit.
This indicates the reason why the exit is being called. Possible values are:
This indicates that the exit is being invoked for the first time. It allows the exit to acquire and initialize any resources that it may need (for example: main storage).
This indicates that the exit is about to be terminated. The exit should free any resources that it may have acquired since it was initialized (for example: main storage).
This is an input field to the exit.
Exit user area.
This is a field that is available for the exit to use. It is initialized to MQXUA_NONE (binary zero) before the first invocation of the exit, and thereafter any changes made to this field by the exit are preserved across invocations of the exit. The first invocation of the exit has ExitReason set to MQXR_INIT.
The following value is defined:
The value is binary zero for the length of the field.
For the C programming language, the constant MQXUA_NONE_ARRAY is also defined; this has the same value as MQXUA_NONE, but is an array of characters instead of a string.
The length of this field is given by MQ_EXIT_USER_AREA_LENGTH. This is an input/output field to the exit.
Transport type.
This is the type of transport being used. The value is:
This is an input field to the exit.
Number of times data has been retried.
This is the number of previous attempts that have been made to send the current data. It is zero on first invocation of the exit for the current data.
This is an input field to the exit.
Length of data to be sent.
This is always greater than zero. For MQXPT_UDP, it is one complete encoded datagram.
This is an input field to the exit.
Session identifier.
This is the identifier of the session of channel. For MQXPT_UDP, it is the UdpHandle.
This is an input field to the exit.
Group identifier.
This is the identifier of the group, bunch, or message to which the data belongs. For MQXPT_UDP, it identifies the bunch.
This is an input field to the exit.
Data identifier.
For MQXPT_UDP, this is the datagram identifier.
This is an input field to the exit.
Response from exit.
This is set by the exit to indicate how processing should continue. It must be one of the following:
This indicates that processing should continue normally.
This indicates that processing should continue normally, but that the datagram about to be sent should request that an acknowledgement be returned by the receiver of the datagram.
This indicates that processing should be discontinued and the channel closed.
If any other value is returned by the exit, processing continues as if MQXCC_CLOSE_CHANNEL had been specified.
This is an output field from the exit.
Reserved.
This is a reserved field. The value is zero.
typedef struct tagMQTXP MQTXP; struct tagMQTXP { MQCHAR4 StrucId; /* Structure identifier */ MQLONG Version; /* Structure version number */ MQLONG Reserved; /* Reserved */ MQLONG ExitReason; /* Reason for invoking exit */ MQBYTE16 ExitUserArea; /* Exit user area */ MQLONG TransportType; /* Transport type */ MQLONG RetryCount; /* Number of times data has been retried */ MQLONG DataLength; /* Length of data to be sent */ MQLONG SessionId; /* Session identifier */ MQLONG GroupId; /* Group identifier */ MQLONG DataId; /* Data identifier */ MQLONG ExitResponse; /* Response from exit */ MQLONG Feedback; /* Reserved */ };