集約ノードの 2 つのプロパティーを使用して、集約されるメッセージを処理するためのタイムアウト値を設定することができます。
実行グループと同じ名前の Aggregation 構成可能サービスが存在する場合、それは実行グループの中のすべての集約に使用できます。 ただし、実行グループの中の集約と同じ名前の構成可能サービスが存在する場合には、その特定の集約に使用されます。 それぞれのケースにおいて、構成可能サービスの timeoutSeconds プロパティーの値が、AggregateControl ノードの 「タイムアウト」プロパティーをオーバーライドします。
Aggregation 構成可能サービスについての詳細は、構成可能サービスのプロパティーを参照してください。
AggregateControl ノードの「タイムアウトの場所」プロパティーを使用して、 着信メッセージ内のタイムアウト値の場所を指定できます。 この方法で指定したタイムアウト値は、AggregateControl ノードと集約構成可能サービスで指定された値を指定変更します。
詳しくは、AggregateControl ノードを参照してください。
デフォルトでは、タイムアウト・ポーリングが 5 秒ごとに発生します。 そのため、「タイムアウト」プロパティーに 5 の倍数でない値を設定すると、余分な遅延が発生します。 例えば、「タイムアウト」プロパティーを 7 秒に設定すると、次回のタイムアウト・ポーリングまで 3 秒の遅延が発生します。 デフォルトのタイムアウト・ポーリング間隔を変更するには、環境変数 MQSI_AGGR_WAIT_TIMEOUT を使用します。 有効な値は 1000 ミリ秒から 5000 ミリ秒までです。 デフォルトのポーリング間隔を変更するときには、ブローカーを停止してから、MQSI_AGGR_WAIT_TIMEOUT 環境変数を設定した環境でブローカーを再始動します。
タイムアウトのインターバルが経過したのにすべての応答が到着していない場合は、到着した応答が、対応する AggregateReply ノードによって、集約された応答メッセージにされ、そのノードの Timeout ターミナルに伝搬されます。 この部分的な応答メッセージは、集約された完全な応答メッセージと同様に処理できます。 必要であれば、未完了の集約された応答の特殊処理を提供することができます。
このプロパティーを設定すると、有効な応答として即時に認識されなかったメッセージが、指定の秒数に渡ってブローカーの内部に保留されます。
不明タイムアウトのインターバルが満了してもメッセージが認識されている場合、メッセージは処理されます。 ノードは、以前は不明だったメッセージが有効なメッセージが集約の完成に必要な最後の応答であるかどうかを調べるために検査を行います。 もしそうであれば、集約応答メッセージが構成されて、伝搬されます。
不明タイムアウトのインターバルが満了してもメッセージが依然として認識されていない場合、メッセージは以前と同様 Unknown ターミナルに伝搬されます。