通道自动定义出口程序
当接收到启动接收方或服务器连接通道的请求,但不存在该通道的定义 (不适用于 IBM® MQ for z/OS® ) 时,可以使用通道自动定义出口。 也可以在所有平台上为集群发送方和集群接收方通道调用此出口以允许修改通道实例的定义。
当接收到启动接收方或服务器连接通道的请求但不存在通道定义时,可以在除 z/OS 之外的所有平台上调用通道自动定义出口。 您可以使用此出口修改为自动定义的接收方或服务器连接通道(SYSTEM.AUTO.RECEIVER 或 SYSTEM.AUTO.SVRCON)提供的缺省定义。 请参阅 准备通道 ,以获取有关如何自动创建通道定义的描述。
还可以在收到启动集群发送方通道的请求时调用通道自动定义出口。 可以为集群发送方和集群接收方通道调用此出口以允许修改此通道实例的定义。 在这种情况下,出口也适用于 IBM MQ for z/OS。 通道自动定义出口的一般用途是更改消息出口(MSGEXIT、RCVEXIT、SCYEXIT 和 SENDEXIT)的名称,因为出口名称在不同的平台上有不同的格式。 如果未指定通道自动定义出口,那么 z/OS 上的缺省行为是检查格式为 [path]/libraryname(function) 的分布式出口名称,并最多使用 8 个字符的函数 (如果存在) 或库名。 在 "z/OS上,通道自动定义退出程序必须更改 "MsgExitPtr,"MsgUserDataPtr,"SendExitPtr,""SendUserDataPtr,""ReceiveExitPtr,"和 "ReceiveUserDataPtr,"寻址的字段,而不是 "MsgExit,""MsgUserData,""SendExit,""SendUserData,""ReceiveExit"和 "ReceiveUserData字段本身。
有关更多信息,请参阅 使用自动定义的通道。
MQ_CHANNEL_AUTO_DEF_EXIT (ChannelExitParms, ChannelDefinition)
MQCXP中描述了 ChannelExitParms 。 ChannelDefinition 在 MQCD中进行了描述。
MQCD 包含缺省通道定义内使用的值,前提是出口没有变更这些值。 出口只能修改部分字段; 请参阅 MQ_CHANNEL_AUTO_DEF_EXIT。 但是,尝试更改其他字段不会导致错误发生。
通道自动定义出口返回 MQXCC_OK 或 MQXCC_SUPPRESS_FUNCTION 响应。 如果不返回以上任一响应,MCA 将如同返回 MQXCC_SUPPRESS_FUNCTION 了一样继续处理。 即放弃自动定义,不创建新的通道定义,通道将无法启动。