MQWXP 中的字段-集群工作负载出口参数结构

MQWXP -集群工作负载出口参数结构中字段的描述

StrucId ( MQCHAR4 ) -输入
集群工作负载出口参数结构的结构标识。
  • StrucId 值为 MQWXP_STRUC_ID
  • 对于 C 编程语言,还定义了常量 MQWXP_STRUC_ID_ARRAY 。 它具有与 MQWXP_STRUC_ID相同的值。 它是一个字符数组,而不是字符串。
版本 ( MQLONG ) -输入
指示结构版本号。 Version 采用下列其中一个值:
MQWXP_VERSION_1
Version-1 集群工作负载出口参数结构。
MQWXP_VERSION_1 在所有环境中都受支持。
MQWXP_VERSION_2
Version-2 集群工作负载出口参数结构。
MQWXP_VERSION_2 在以下环境中受支持: AIX®HP-UXLinux®IBM® iSolarisWindows
MQWXP_VERSION_3
Version-3 集群工作负载出口参数结构。
MQWXP_VERSION_3 在以下环境中受支持: AIXHP-UXLinuxIBM iSolarisWindows
MQWXP_VERSION_4
Version-4 集群工作负载出口参数结构。
MQWXP_VERSION_4 在以下环境中受支持: AIXHP-UXLinuxIBM iSolarisWindows
MQWXP_CURRENT_VERSION
集群工作负载出口参数结构的当前版本。
ExitId ( MQLONG ) -输入
指示正在调用的出口的类型。 集群工作负载出口是唯一受支持的出口。
  • ExitId 值必须为 MQXT_CLUSTER_WORKLOAD_EXIT
ExitReason ( MQLONG ) -输入
指示调用集群工作负载出口的原因。 ExitReason 采用下列其中一个值:
MQXR_INIT
指示正在首次调用出口。
获取并初始化出口可能需要的任何资源,例如主存储器。
MQXR_TERM
指示出口即将终止。
释放出口自初始化以来可能已获取的任何资源,例如主存储器。
MQXR_CLWL_OPEN
MQOPEN调用。
MQXR_CLWL_PUT
MQPUTMQPUT1调用。
MQXR_CLWL_MOVE
当通道状态已更改时由 MCA 调用。
MQXR_CLWL_REPOS
MQPUTMQPUT1 针对 repository-manager PCF 消息调用。
MQXR_CLWL_REPOS_MOVE
由 MCA 针对存储库管理器 PCF 消息调用 (如果通道状态已更改)。
ExitResponse ( MQLONG ) -输出
设置 ExitResponse 以指示是否继续处理消息。 它必须是下列其中一个值:
MQXCC_OK
继续正常处理消息。
  • DestinationChosen 标识要将消息发送到的目标。
MQXCC_SUPPRESS_FUNCTION
停止处理消息。
  • 队列管理器执行的操作取决于调用出口的原因:
    表 1. 队列管理器. 执行的操作

    此表中有两列。 第一列列出了退出原因,第二列描述了针对每个退出原因采取的操作。

    ExitReason 采取的操作
    • MQXR_CLWL_OPEN
    • MQXR_CLWL_REPOS
    • MQXR_CLWL_PUT
    MQOPENMQPUTMQPUT1 调用失败,完成代码为 MQCC_FAILED ,原因码为 MQRC_STOPPED_BY_CLUSTER_EXIT
    • MQXR_CLWL_MOVE
    • MQXR_CLWL_REPOS_MOVE
    消息放置在死信队列上。
MQXCC_SUPPRESS_EXIT
继续正常处理当前消息。 在队列管理器关闭之前,请勿再次调用出口。
队列管理器处理后续消息时,就像 ClusterWorkloadExit 队列管理器属性为空。 DestinationChosen 标识将当前消息发送到的目标。
任何其他值
如同指定了 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_INITExitReason 字段指示。
  • 定义了以下常量:
    MQXUA_NONE -字符串
    MQXUA_NONE_ARRAY -字符数组
    无用户信息。 对于字段的长度,两个常量都是二进制零。
    MQ_EXIT_USER_AREA_LENGTH
    长度为 ExitUserArea
ExitData ( MQCHAR32 ) -输入
队列管理器属性的价值。 ClusterWorkloadData 队列管理器属性的价值。 如果未为该属性定义值,那么此字段全部是空白。
  • ExitData 的长度由 MQ_EXIT_DATA_LENGTH给出。
MsgDescPtr(PMQMD) ——输入
消息描述符 ( MQMD ) 副本的地址 针对正在处理的消息。
  • 队列管理器将忽略出口对消息描述符所作的任何更改。
  • 如果 ExitReason 具有以下值之一 MsgDescPtr 设置为空指针,且没有消息描述符传递给exit:
    • MQXR_INIT
    • MQXR_TERM
    • MQXR_CLWL_OPEN
MsgBufferPtr(PMQVOID )——输入
缓冲区的地址,其中包含消息数据前 MsgBufferLength 字节信息的缓冲区地址。
  • 队列管理器将忽略出口对消息数据所作的任何更改。
  • 在以下情况下,不会将任何消息数据传递到出口:
    • MsgDescPtr 是空指针。
    • 消息没有数据。
    • 队列管理器属性为零。 ClusterWorkloadLength 队列管理器属性为零。
    在这些情况下, MsgBufferPtr 是空指针。
MsgBufferLength(MQLONG) ——输入
包含传递到出口的消息数据的缓冲区的长度。
  • 长度由 ClusterWorkloadLength 队列管理器属性。
  • 长度可能小于完整消息的长度,请参阅 MsgLength
MsgLength ( MQLONG ) -输入
传递到出口的完整消息的长度。
  • MsgBufferLength 可能比完整消息的长度要短。
  • 如果 ExitReasonMQXR_INITMQXR_TERMMQXR_CLWL_OPEN,那么 MsgLength 为零。
QName ( MQCHAR48 ) -输入
这是目标队列的名称。 该队列是集群队列。
  • QName 的长度为 MQ_Q_NAME_LENGTH
QMgrName ( MQCHAR48 ) -输入
已调用集群工作负载出口的本地队列管理器的名称。
  • QMgrName 的长度为 MQ_Q_MGR_NAME_LENGTH
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 调用。