z/OS 上的不同代理之间实现输入的序列化

本示例演示了当运行在各个代理上的消息流使用相同的序列化标记时,一次只有一个输入节点可从共享队列中获取消息。

相同的消息流 MyFlowA 将部署至每个代理上称为 MYGroupA 的执行组。请注意,该消息流不必相同;重要的是在两个流上使用相同的序列化标记。

本示例中的简单消息流由连接至 MQOutput 节点的 MQInput 节点组成。两个消息流中的 MQInput 节点从共享队列 INQueue.QSG 中获取消息;该节点属性序列化标记在两个 MQInput 节点中均配置为 MyToken123ABC

消息流属性附加实例在两个消息流中均采用缺省值零,这确保了输入在流中序列化。


显示参加队列共享组的多个代理的插图
针对本示例,事件的通常序列如下:
  1. 第一个代理 MQ01BRK 在执行组 MyGroupA 中启动并运行消息流 MyFlowA。输入节点 MyInputNode 使用序列化标记 MyToken123ABC 连接至代理管理器 MQ01。 输入节点成功打开共享队列 INQUeue.QSG 并获取输入消息。
  2. 第二个代理 MQ02BRK 在执行组 MyGroupA 中启动并开始运行其消息流 MyFlowA的副本。 输入节点 MyInputNode 也使用序列化标记 MyToken123ABC 试图连接至队列管理器 MQ02
    将会记录下列 SDSF 控制台消息:
     BIP2656I MQ02BRK MyGroupA 17 UNABLE TO OPEN QUEUE  
     'INQueue.QSG' ON WEBSPHERE BUSINESS INTEGRATION QUEUE 
     MANAGER 'MQ02': COMPLETION CODE 2; REASON CODE 2271. 
     :ImbCommonInputNode(759) BECAUSE SERIALIZATION TOKEN  
     MyToken123ABC is already in use. NO USER ACTION REQUIRED. 

    请注意,该消息每 30 分钟输出一次。

    在代理 MQ02BRK 上运行的执行组 MyGroupA 中的消息流 MyFlowA 无法处理输入,因为其已传递的序列化标记已在队列共享组中使用。这由消息 bip2623 中的原因码 2271 (MQRC_CONN_TAG_IN_USE) 表明。

  3. 代理 MQ01BRK 停止。代理 MQ02BRK2 的执行组 MyGroupA 中的消息流 MyFlowA 现在能够从共享队列 INQueue.QSG 获取消息。
    将会记录一系列 SDSF 控制台消息,其中相关的两条消息如下:
      BIP2091I MQ02BRK MyGroupA 17 THE BROKER HAS 
     RECONNECTED TO WEBSPHERE BUSINESS INTEGRATION 
     SUCCESSFULLY : ImbCommonInputNode(785)               
      BIP9142I MQ01BRK 0 THE COMPONENT HAS STOPPED. : 
     ImbControlService(594)              

如果代理 MQ01BRK 失败(而非通过操作员的请求而停止),或者,如果将新的代理配置部署至删除或修改消息流 MyFlowAMQ01BRK,则先前序列的事件也会发生。

该排列也可用于需要迁移不同代理之间的消息处理,这些代理运行在附加至同一耦合设施的不同 z/OS 系统映像中。

相关概念
z/OS 定制概述
z/OS 上消息序列化概述
在运行于 z/OS 上相同代理的不同执行组之间实现输入的序列化
在 z/OS 上的执行组中实现输入的序列化
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ae27010_