为聚集设置超时

您可以使用 aggregation 节点的两个属性来为聚集消息处理设置超时值。

开始之前:

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

有两种情况可能需要使用超时:

  1. 在某些情况下您可能需要在某段时间内接收聚集的应答消息。一些应答消息返回可能会很慢或可能不会到达。在这些情况下,请执行以下操作:
    1. 切换到“代理应用程序开发”透视图
    2. 打开扇出消息流。
    3. 设置 AggregateControl 节点的超时属性来指定代理必须等待应答的时间(以秒为单位)。缺省情况下,此属性设置为 0,表示没有超时并且代理不限定地等待。

    如果超时时间间隔已过而应答未全部到达,则已经到达的应答已经通过相应的 AggregateReply 节点转为聚集的应答消息,并传播 到其 timeout 终端。您可以选择使用与处理完整的聚集应答消息相同的方法处理此部分响应消息。如果您愿意,可以为未完成的聚集应答提供特殊处理。

  2. 当消息到达 AggregateReply 节点的 in 终端时,检查它来查看是否它是所期待的应答消息。如果无法识别此消息,则将它传播到 unknown 终端。执行此操作前,您可能要代理等待一段给定的时间,因为:
    • 应答消息可能在由已经事务地提交的 AggregateRequest 节点执行操作前到达。如创建聚集扇出流中所述,可以通过配置 Input 节点的事务方式属性来避免这种情况。
    • 应答消息可能在控制消息前到达。可以通过保留 AggregateControl 节点的 control 终端未连接来避免这种情况。有关连接 control 终端含意的更多信息,请参阅在聚集流中使用控制消息

    如果您发送同步点外的请求消息则最可能发生这些情况,并可能导致将有效的应答发送到 unknown 终端。要减少此事件的发生的可能性,请执行以下操作:

    1. 切换到“代理应用程序开发”透视图
    2. 打开扇入消息流。
    3. 在 AggregateReply 节点上设置未知消息超时属性。如果设置此属性,无法立即被识别为有效应答的消息将在您为此属性指定的秒数内,在代理内持久保留。

    如果未知超时时间间隔到期,但消息可识别了,则对消息进行处理。节点还检查来查看以前未知的消息是否是完成聚集需要的最后应答。如果是,构造和传播聚集应答消息。

    如果未知超时时间间隔到期并且仍不能识别消息,则消息传播到 unknown 终端。

相关概念
消息流概述
消息流聚集
相关任务
配置聚集流
创建聚集扇出流
创建聚集扇入流
关联扇出和扇入聚集流
避免在扇入流上缺乏线程
使用多个 AggregateControl 节点
处理聚集流中的异常
设计消息流
创建消息流
定义消息流内容
在聚集流中使用控制消息
相关参考
AggregateControl 节点
AggregateReply 节点
AggregateRequest 节点
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac12320_