MQWXP 中的字段-集群工作负载出口参数结构
MQWXP -集群工作负载出口参数结构中字段的描述
- StrucId ( MQCHAR4 ) -输入
- 集群工作负载出口参数结构的结构标识。
- StrucId 值为
MQWXP_STRUC_ID。 - 对于 C 编程语言,还定义了常量
MQWXP_STRUC_ID_ARRAY。 它具有与MQWXP_STRUC_ID相同的值。 它是一个字符数组,而不是字符串。
- StrucId 值为
- 版本 ( MQLONG ) -输入
- 指示结构版本号。 Version 采用下列其中一个值:
MQWXP_VERSION_1- Version-1 集群工作负载出口参数结构。
MQWXP_VERSION_2- Version-2 集群工作负载出口参数结构。
MQWXP_VERSION_3- Version-3 集群工作负载出口参数结构。
MQWXP_VERSION_4- Version-4 集群工作负载出口参数结构。
MQWXP_CURRENT_VERSION- 集群工作负载出口参数结构的当前版本。
- ExitId ( MQLONG ) -输入
- 指示正在调用的出口的类型。 集群工作负载出口是唯一受支持的出口。
- ExitId 值必须为
MQXT_CLUSTER_WORKLOAD_EXIT
- ExitId 值必须为
- ExitReason ( MQLONG ) -输入
- 指示调用集群工作负载出口的原因。 ExitReason 采用下列其中一个值:
MQXR_INIT- 指示正在首次调用出口。
MQXR_TERM- 指示出口即将终止。
MQXR_CLWL_OPEN- 由 MQOPEN调用。
MQXR_CLWL_PUT- 由 MQPUT 或 MQPUT1调用。
MQXR_CLWL_MOVE- 当通道状态已更改时由 MCA 调用。
MQXR_CLWL_REPOS- 由 MQPUT 或 MQPUT1 针对 repository-manager PCF 消息调用。
MQXR_CLWL_REPOS_MOVE- 由 MCA 针对存储库管理器 PCF 消息调用 (如果通道状态已更改)。
- ExitResponse ( MQLONG ) -输出
- 设置 ExitResponse 以指示是否继续处理消息。 它必须是下列其中一个值:
MQXCC_OK- 继续正常处理消息。
- DestinationChosen 标识要将消息发送到的目标。
MQXCC_SUPPRESS_FUNCTION- 停止处理消息。
- 队列管理器执行的操作取决于调用出口的原因:
表 1. 队列管理器. 执行的操作 此表中有两列。 第一列列出了退出原因,第二列描述了针对每个退出原因采取的操作。
ExitReason 采取的操作 MQXR_CLWL_OPENMQXR_CLWL_REPOSMQXR_CLWL_PUT
MQOPEN, MQPUT或 MQPUT1 调用失败,完成代码为 MQCC_FAILED,原因码为MQRC_STOPPED_BY_CLUSTER_EXIT。MQXR_CLWL_MOVEMQXR_CLWL_REPOS_MOVE
消息放置在死信队列上。
- 队列管理器执行的操作取决于调用出口的原因:
MQXCC_SUPPRESS_EXIT- 继续正常处理当前消息。 在队列管理器关闭之前,请勿再次调用出口。
- 任何其他值
- 如同指定了
MQXCC_SUPPRESS_FUNCTION一样处理消息。
- ExitResponse2 ( MQLONG ) -输入/输出
- 设置 ExitResponse2 以向队列管理器提供更多信息。
MQXR2_STATIC_CACHE是缺省值,在进入出口时设置。- 当 ExitReason 具有值
MQXR_INIT时,出口可以在 ExitResponse2中设置下列其中一个值:MQXR2_STATIC_CACHE- 出口需要静态集群高速缓存。
- 如果集群高速缓存是静态的,那么出口无需使用 MQXCLWLN 调用来浏览集群高速缓存中的记录链。
- 如果集群高速缓存是动态的,那么出口无法正确浏览高速缓存中的记录。注: 队列管理器处理来自
MQXR_INIT调用的返回,就像出口在 ExitResponse 字段中返回了MQXCC_SUPPRESS_EXIT一样。
MQXR2_DYNAMIC_CACHE- 该出口可以使用静态或动态高速缓存进行操作。
- 如果该出口返回此值,那么该出口必须使用 MQXCLWLN 调用来浏览集群高速缓存中的记录链。
- 反馈 ( MQLONG ) -输入
- 保留字段。 值为零。
- 标志 ( MQLONG ) -输入
- 指示有关正在放入的消息的信息。
- 标志 的值为
MQWXP_PUT_BY_CLUSTER_CHL。 消息源自集群通道,而不是本地或非集群通道。 换言之,消息来自另一个集群队列管理器。
- 标志 的值为
- 保留 ( MQLONG ) -输入
- 保留字段。 值为零。
- ExitUserArea ( MQBYTE16 )——输入/输出
- ExitUserArea 在两次通话之间联系。
- ExitUserArea 在第一次调用exit之前,被初始化为二进制零。 对于在 MQCONN 调用和匹配的 MQDISC 调用之间进行的出口调用,将保留该出口对此字段所作的任何更改。 发生 MQDISC 调用时,该字段将重置为二进制零。
- 出口的第一次调用由具有值
MQXR_INIT的 ExitReason 字段指示。 - 定义了以下常量:
MQXUA_NONE-字符串MQXUA_NONE_ARRAY-字符数组- 无用户信息。 对于字段的长度,两个常量都是二进制零。
MQ_EXIT_USER_AREA_LENGTH- 长度为 ExitUserArea。
- ExitData ( MQCHAR32 ) -输入
- 队列管理器属性的价值。 ClusterWorkloadData 队列管理器属性的价值。 如果未为该属性定义值,那么此字段全部是空白。
- ExitData 的长度由
MQ_EXIT_DATA_LENGTH给出。
- ExitData 的长度由
- MsgDescPtr(PMQMD) ——输入
- 消息描述符 ( MQMD ) 副本的地址 针对正在处理的消息。
- 队列管理器将忽略出口对消息描述符所作的任何更改。
- 如果 ExitReason 具有以下值之一 MsgDescPtr 设置为空指针,且没有消息描述符传递给exit:
MQXR_INITMQXR_TERMMQXR_CLWL_OPEN
- MsgBufferPtr(PMQVOID )——输入
- 缓冲区的地址,其中包含消息数据前 MsgBufferLength 字节信息的缓冲区地址。
- 队列管理器将忽略出口对消息数据所作的任何更改。
- 在以下情况下,不会将任何消息数据传递到出口:
- MsgDescPtr 是空指针。
- 消息没有数据。
- 队列管理器属性为零。 ClusterWorkloadLength 队列管理器属性为零。
- MsgBufferLength(MQLONG) ——输入
- 包含传递到出口的消息数据的缓冲区的长度。
- 长度由 ClusterWorkloadLength 队列管理器属性。
- 长度可能小于完整消息的长度,请参阅 MsgLength。
- MsgLength ( MQLONG ) -输入
- 传递到出口的完整消息的长度。
- MsgBufferLength 可能比完整消息的长度要短。
- 如果 ExitReason 为
MQXR_INIT,MQXR_TERM或MQXR_CLWL_OPEN,那么 MsgLength 为零。
- QName ( MQCHAR48 ) -输入
- 这是目标队列的名称。 该队列是集群队列。
- QName 的长度为
MQ_Q_NAME_LENGTH。
- QName 的长度为
- QMgrName ( MQCHAR48 ) -输入
- 已调用集群工作负载出口的本地队列管理器的名称。
- QMgrName 的长度为
MQ_Q_MGR_NAME_LENGTH。
- QMgrName 的长度为
- DestinationCount ( MQLONG ) -输入
- 可能的目标数。 目标是目标队列的实例,由目标记录描述。
- 目标记录是 MQWDR 结构。 队列的每个实例的每个可能路径都有一个结构。
- MQWDR 结构由一系列指针来寻址,参见 DestinationArrayPtr。
- DestinationChosen ( MQLONG ) -输入/输出
- 所选目标。
- MQWDR 结构的编号,用于标识要在其中发送消息的路由和队列实例。
- 该值在范围 1- DestinationCount内。
- 在输入到出口时, DestinationChosen 指示队列管理器已选择的路由和队列实例。 出口可以接受此选项,也可以选择其他路由和队列实例。
- 出口设置的值必须在范围 1- DestinationCount内。 如果返回任何其他值,那么队列管理器将在输入到出口时使用 DestinationChosen 的值。
- DestinationArrayPtr(PPMQWDR) ——输入
- 指向目标记录的指针数组的地址 ( MQWDR )。
- 存在 DestinationCount 个目标记录。
- QArrayPtr ( PPMQWQR ) -输入
- 指向队列记录的指针数组的地址 ( MQWQR )。
- 如果队列记录可用,那么其中存在 DestinationCount 个记录。
- 如果没有可用的队列记录,那么 QArrayPtr 是空指针。注: QArrayPtr 可以是空指针,即使 DestinationCount 大于零也是如此。
- CacheContext ( MQPTR ) : V 2-输入
- CacheContext 字段保留供队列管理器使用。 出口不得改变此字段的值。
- CacheType ( MQLONG ) : V 2-输入
- 集群高速缓存具有下列其中一种类型:
MQCLCT_STATIC- 高速缓存是静态的。
- 高速缓存的大小是固定的,不能随着队列管理器的运行而增大。
- 您不需要使用 MQXCLWLN 调用来浏览此类型高速缓存中的记录。
MQCLCT_DYNAMIC- 高速缓存是动态的。
- 为了适应不同的集群信息,可以增大高速缓存的大小。
- 您必须使用 MQXCLWLN 调用来浏览此类型高速缓存中的记录。
- CLWLMRUChannels ( MQLONG ) : V 3-输入
- 指示要考虑由集群工作负载选择算法使用的最大活动出站集群通道数。
- CLWLMRUChannels 是值 1-999 999 999。
- pEntryPoints(PMQIEP ):第4版
- MQIEP 结构的地址,可通过该结构进行 MQI 和 DCI 调用。