Change MQCD fields in a channel exit

A channel exit can change fields in the MQCD. However, these changes are not typically acted on, except in the circumstances listed.

If a channel exit program changes a field in the MQCD data structure, the new value is typically ignored by the IBM MQ channel process. However, the new value remains in the MQCD and is passed to any remaining exits in an exit chain and to any conversation sharing the channel instance.

If SharingConversations is set to FALSE in the MQCXP structure, changes to certain fields can be acted on, depending on the type of exit program, the type of channel, and the exit reason code. The following table shows the fields that can be changed and affect the behavior of the channel, and in what circumstances. If an exit program changes one of these fields in any other circumstances, or any field not listed, the new value is ignored by the channel process. The new value remains in the MQCD and is passed to any remaining exits in an exit chain and to any conversation sharing the channel instance.

Any type of exit program when called for initialization (MQXR_INIT) can change the ChannelName field of any type of channel, as long as MQCXP SharingConverstions is set to FALSE. Only a security exit can change the MCAUserIdentifier field, regardless of the value of MQCXP SharingConverstions.

Field Exit reason code Exit type Channel type
ChannelName MQXR_INIT All All
TransportType MQXR_INIT All All
XmitQName MQXR_INIT All SDR, RCVR
ModeName MQXR_INIT All All
TpName MQXR_INIT All All
BatchSize MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
DiscInterval MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
ShortRetryCount MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
ShortRetryInterval MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
LongRetryCount MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
LongRetryInterval MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
SeqNumberWrap MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
MaxMsgLength MQXR_INIT All All
PutAuthority MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
DataConversion MQXR_INIT All All
MCAUserIdentifier MQXR_INIT, MQXR_INIT_SEC, MQXR_SEC_MSG, MQXR_SEC_PARMS Security RCVR, RQSTR, SVRCONN, CLUSRCVR
ConnectionName MQXR_INIT All SDR, SVR, RQSTR, CLNTCONN, CLUSSDR, CLUSRCVR
MsgRetryUserData MQXR_INIT All RCVR, RQSTR, CLUSRCVR
MsgRetryCount MQXR_INIT All RCVR, RQSTR, CLUSRCVR
MsgRetryInterval MQXR_INIT All RCVR, RQSTR, CLUSRCVR
HeartbeatInterval MQXR_INIT All All
BatchInterval MQXR_INIT All SDR, SVR, CLUSSDR, CLUSRCVR
NonPersistentMsgSpeed MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
MCASecurityId MQXR_INIT, MQXR_INIT_SEC, MQXR_SEC_MSG, MQXR_SEC_PARMS Security SDR, SVR, RCVR, RQSTR, SVRCONN, CLUSSDR, CLUSRCVR
SSLCipherSpec MQXR_INIT All All
SSLPeerNamePtr MQXR_INIT All All
SSLPeerNameLength MQXR_INIT All All
SSLClientAuth MQXR_INIT All SVR, RCVR, RQSTR, SVRCONN, CLUSRCVR
KeepAliveInterval MQXR_INIT All All
LocalAddress MQXR_INIT All SDR, SVR, RQSTR, CLNTCONN, CLUSSDR, CLUSRCVR
BatchHeartbeat MQXR_INIT All SDR, SVR, CLUSSDR, CLUSRCVR
HdrCompList MQXR_INIT All All
MsgCompList MQXR_INIT All All
ChannelMonitoring MQXR_INIT All SDR, SVR, RCVR, RQSTR, SVRCONN, CLUSSDR, CLUSRCVR
ChannelStatistics MQXR_INIT All SDR, SVR, RCVR, RQSTR, CLUSSDR, CLUSRCVR
SharingConversations MQXR_INIT All SVRCONN, CLNTCONN
PropertyControl MQXR_INIT All SDR, SVR, CLUSSDR, CLUSRCVR