在运行于 z/OS 上相同代理的不同执行组之间实现输入的序列化

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

相同的消息流 MyFlowA 将部署至代理 MQ01BRK 上称为 MYGroupAMYGroupB 的两个执行组中。

在这种情况下,不需要参加队列共享组的队列管理器。输入队列 INQueue 使用处置 QMGR 定义为本地

如同在在 z/OS 上的不同代理之间实现输入的序列化中一样:

显示同一代理中的多个执行组的插图
针对本示例,事件的通常序列如下:
  1. 代理 MQ01BRK 在执行组 MyGroupA 中启动,并且开始的第一个消息流是 MyFlowAMQInput 节点 MyInputNode 使用序列化标记 MyToken123ABC 连接至队列管理器 MQ01 MQInput 节点成功打开共享队列 INQUeue 并获取输入消息。
  2. 第二个执行组 MyGroupB 启动,并且执行组 MyGroupB 中的消息流 MyFlowA 开始。 MQInput 节点 MyInputNode 现在使用序列化标记 MyToken123ABC 试图连接至队列管理器 MQ01。 将会记录下列 SDSF 控制台消息:
     BIP2656I MQ01BRK MyGroupB 11 UNABLE TO OPEN QUEUE
     'INQueue' ON WEBSPHERE BUSINESS INTEGRATION QUEUE 
     MANAGER 'MQ01':  BECAUSE SERIALIZATION TOKEN  
     MyToken123ABC is already in use. NO USER ACTION REQUIRED

    执行组 MyGroupB 中的消息流 MyFlowA 无法处理输入,因为其已传递的序列化标记已在队列管理器使用(通过执行组 MyGroupA 中的消息流 MyFlowA 里的 MQInput 节点)。 这由消息 bip2623 中的原因码 2271 (MQRC_CONN_TAG_IN_USE) 表明。

  3. 第一个执行组将删除或取消。

    如果操作员在重新部署代理配置期间取消、中止或删除了第一个执行组,则第二个执行组中的输入节点现在能够从队列 INQueue 获取输入消息。

    将会记录一系列 SDSF 控制台消息,其中相关的一条消息如下:
      BIP2091I MQ01BRK MyGroupB 11 THE BROKER HAS 
     RECONNECTED TO WEBSPHERE BUSINESS INTEGRATION 
     SUCCESSFULLY : ImbCommonInputNode(785)               

执行组 MyGroupB 中的消息流 MyFlowA 现在能够从共享 INQueue.QSG 中恢复对消息的处理。

请注意,尽管输入的序列化可以通过配置专用输入的输入队列并采用类似的方法实现,但是这不确保恢复情况期间的消息完整性。这只有如本示例中所述,通过使用序列化标记才能实现。

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