在聚集流中使用控制消息

开始之前:

要执行此任务,必须先完成下列任务:

以下主题描述了发送控制消息必需的操作。在 WebSphere Message Broker 中,缺省行为是忽略用于发送控制消息的 AggregateControl 和 AggregateReply 节点之间的连接。此配置会优化性能,并消除 AggregateReply 节点在收到控制消息之前收到响应消息的可能性。控制消息对于使聚集正常工作不是必需的。但当仍然有必要在聚集流中发送控制消息时,这也有可能。要在 WebSphere Message Broker V6.0 中创建的消息流中发送控制消息,请参阅本主题中的配置消息流来发送控制消息配置代理环境来发送控制消息

如果在 V5.0 中创建了消息流并将其配置为使用控制消息,而且希望继续使用控制消息,请参阅本主题中的配置代理环境来发送控制消息除非完成此任务,否则在 V6.0 中将忽略在较早版本的产品中创建的 AggregateControl 和 AggregateReply 节点之间的连接。

有关聚集的工作示例(不使用控制消息),请参阅航空公司订票样本

配置消息流来发送控制消息

要配置消息流来将控制消息从 AggregateControl 节点发送至 AggregateReply 节点,请执行以下操作:
  1. 切换到“代理应用程序开发”透视图
  2. 如果已经在单个消息流中创建了扇出流和扇入流,请执行以下操作:
    1. 打开聚集消息流。
    2. 将 AggregateControl 节点的 control 终端连接到 AggregateReply 节点的 control 终端完成关联。

    这称为两个聚集节点的直接连接。

  3. 如果已经创建了单独的扇出消息流和扇入消息流,请执行以下操作:
    1. 打开扇出消息流。
    2. 创建聚集扇出流中所述,配置 AggregateControl 节点。
    3. 在此阶段,可以对创建包含控制消息的有效输出消息的 Compute 节点进行配置。例如,如果您要将控制消息传递到 MQOutput 节点,可配置 Compute 节点将 MQMD 添加到消息并完成该头中的必需字段。 例如,可以编写以下 ESQL 代码:
      更新开始
      SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID;
      SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
      SET OutputRoot.MQMD.Format = MQFMT_STRING;
      更新结束
    4. 配置表示控制消息的介体目标的输出节点。例如,如果您要将控制消息发送到介体 WebSphere MQ 队列,可包含 MQOutput 节点并在“基本”属性队列管理器名队列名中标识目标队列。
    5. 将 AggregateControl 节点的 control 终端连接到 Compute 节点的 in 终端,将 Compute 节点的 out 终端连接到输出节点(它代表控制消息的介体目标)的 in 终端。
    6. 打开扇入消息流。
    7. 创建聚集扇入流中所述,配置一个输入节点来接收应答消息。这个输入节点还将接收来自 AggregateControl 节点的控制信息。例如,设置 MQInput 节点的“基本”属性队列名,接收来自介体 WebSphere MQ 队列的响应和控制消息。
    8. 避免在扇入流上缺乏线程中所述,将 Filter 节点添加到扇入流中输入节点的后面,AggregateReply 节点的前面。
    9. 将输入节点的 out 终端连接到 Filter 节点的 in 终端。
    10. 将 Filter 节点的 out 终端连接到 AggregateReply 节点的 control 终端和 in 终端。

    这称为两个聚集节点的间接连接。

配置代理环境来发送控制消息

缺省情况下,在 WebSphere Message Broker V6.0 中,将忽略从 AggregateRequest 节点的 control 终端到 AggregateReply 节点的任何连接。要使这些连接活动,请在代理的环境中创建 MQSI_AGGR_COMPAT_MODE 环境变量。缺省情况下,该环境变量不存在。该环境变量存在意味着无论将该环境变量设置为何值,从 AggregateControl 节点发出的连接都是活动的。

未创建 MQSI_AGGR_COMPAT_MODE 环境变量时,将使用聚集扇出流的缺省行为。如果将 AgregateControl 节点的 control 终端直接或间接连接到 AggregateReply 节点的 in 终端,则忽略此连接,并且不发送任何控制消息。

如果创建了 MQSI_AGGR_COMPAT_MODE 环境变量,则使用聚集扇出流的缺省行为,从而使您能够将控制消息从 AggregateControl 节点发送到 AggregateReply 节点。如果将 AggregateControl 节点的 Control 终端直接或间接连接到 AggregateReply 节点的 In 终端(如创建聚集扇出流中所述),则会识别此连接并发送控制消息。请注意,这不是最佳配置,可能会降低性能。

要创建 MQSI_AGGR_COMPAT_MODE 变量,使 AggregateControl 节点和 AggregateReply 节点之间的连接能够被识别,请执行以下操作:
  • Windows 上:
    1. 打开“系统属性”:开始 > 控制面板 > 系统
    2. 单击高级选项卡。
    3. 单击环境变量
    4. 系统变量窗格下,单击新建
    5. 变量名下,输入 MQSI_AGGR_COMPAT_MODE。如果愿意,可以填写变量值,否则保留该字段为空白。
    6. 要使环境变量生效,必须重新启动计算机。
  • LinuxUNIXz/OS 上,执行以下操作:
    1. 编辑代理用户标识的概要文件,并包含以下语句:export MQSI_AGGR_COMPAT_MODE=
    2. 重新装入概要文件。
    3. 重新启动代理。
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac12312_