避免在扇入流上缺乏线程

本主题仅当扇出流中 Aggregate Control 节点的 Control 终端连接到对队列的输出控制消息时适用。通过不连接 Control 终端,可以解决本部分中讨论的问题。有关连接 AggregateControl 的 Control 终端的更多信息,请参阅在聚集流中使用控制消息

Aggregate Reply 节点具有两个输入终端:In 和 Control。如果您同时使用这两个终端,请记住使用 Control 终端是可选的,向 Aggregate Reply 节点提供数据最有效的方法是,对扇入流使用单个 MQInput 节点,后面跟有 Filter 节点。Filter 节点用来根据适当的情况,将入局消息路由到 Aggregate Reply 节点的 In 或 Control 终端。

在消息流中使用单个 MQInput 节点,后跟一个 Filter 节点,而不是使用两个 MQInput 节点:一个用于 In 终端,另一个用于 Control 终端。应该使用单个 MQInput 节点,因为在两个 MQInput 节点之间无法指定应该分发多少其他线程(通过使用附加实例提供)。AggregateReply 节点 In 终端上的流量可能更高,因此在它的输入节点上有更多的线程运行会很有用,而使用两个 MQInput 节点则不可能这样配置。因此,节点可能会缺乏线程、阻塞应答消息并使聚集机制停止运转。

在您的 Filter 节点中使用类似于下面显示的 ESQL 模块,以确保将消息路由到 AggregateReply 节点的相应终端:
CREATE FILTER MODULE FanIn_Filter
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        IF Root.XML.ComIbmAggregateControlNode IS NULL THEN
            RETURN TRUE; -- wired to In
        ELSE
            RETURN FALSE; -- wired to Control
        END IF;
    END;
END MODULE;
注: 如果对您来说,不可能如上述所示配置扇入流,可以强制正在读取控制消息的 MQInput 节点以单线程运行。通过对 MQInput 节点进行配置来执行此操作。在高级属性面板上将“排序方式”属性设置为“按队列顺序”并选择“逻辑顺序”。这将释放所有的已配置附加实例,供另一个 MQInput 节点使用。请注意,因为第一个 MQInput 节点的性能将严重受限,所以只在没有任何其他选择的情况下才应该使用此配置。
相关概念
消息流概述
消息流聚集
相关任务
创建聚集扇入流
创建聚集扇出流
关联扇出和扇入聚集流
为聚集设置超时
使用多个 AggregateControl 节点
处理聚集流中的异常
配置聚集流
相关参考
AggregateControl 节点
AggregateReply 节点
AggregateRequest 节点
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac12313_