制御されたタイムアウトを設定するには、既知の名前を持つ一連のエレメントのあるメッセージを TimeoutControl ノードに送信します。 こうしたエレメントは、作成または削除されるタイムアウトのプロパティーを制御します。
以下の例では、タイムアウト要求メッセージのエレメントと形式、および既知の名前と暗黙的値が示されています。
<TimeoutRequest>
<Action>SET | CANCEL</Action>
<Identifier>String (any alphanumeric string)</Identifier>
<StartDate>String (TODAY | yyyy-mm-dd)</StartDate>
<StartTime>String (NOW | hh:mm:ss)</StartTime>
<Interval>Integer (seconds)</Interval>
<Count>Integer (greater than 0 or -1)</Count>
<IgnoreMissed>TRUE | FALSE</IgnoreMissed>
<AllowOverwrite>TRUE | FALSE</AllowOverwrite>
</TimeoutRequest>
以下の表に、メッセージ内のフィールドについて説明します。 M の見出しの列はプロパティーが必須かどうかを示し、C の見出しの列はプロパティーが構成可能かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
Action | はい | いいえ | なし | このエレメントを SET または CANCEL のどちらかに設定します。 このエレメントを省略した場合や、異なる値に設定した場合、エラーが生成されます。 CANCEL に設定した場合、必須となる他のエレメントは ID だけであり、これは取り消される TimeoutRequest の ID と一致する必要があります。 |
Identifier | はい | いいえ | なし | 英数字ストリングを入力します。 このエレメントを省略した場合、エラーが生成されます。 |
StartDate | いいえ | いいえ | TODAY | このエレメントは、TODAY に設定するか、または yyyy-mm-dd 形式で指定される日付に設定します。 デフォルト値は TODAY です。 |
StartTime | いいえ | いいえ | NOW | このエレメントは、NOW に設定するか、または hh:mm:ss 形式で指定される将来の時刻に設定します。 デフォルト値は NOW です。
StartTime は、ブローカーの現地時間であると想定されます。 開始時刻は、現在時刻に間隔を追加すると計算できます。 開始時刻を計算するノードと TimeoutControl ノードと間で遅延が生じている場合、 メッセージが TimeoutControl ノードに到達するまでに、そのメッセージ内の開始時刻はすでに経過しています。 開始時刻を約 5 分よりも長く超過している場合、 警告が発行されて、TimeoutControl ノードはタイムアウト要求を拒否します。 開始時刻からの超過が 5 分以内の場合、ノードはあたかも即時であるかのようにその要求を処理します。 そのため、タイムアウト要求メッセージ内の開始時刻が、現時点かまたは現時点よりも後の時刻であることを確認してください。 |
Interval | いいえ | はい | 0 | このエレメントは、メッセージを伝搬する間隔を秒数で指定する整数に設定します。 デフォルト値は 0 です。 |
Count | いいえ | はい | 1 | このエレメントは、0 より大きい整数値に設定するか、または -1 (有効期限が切れないタイムアウト要求を指定する) に設定します。 デフォルト値は 1 です。 |
IgnoreMissed | はい | いいえ | TRUE | このエレメントは、TRUE または FALSE に設定します。これは、ブローカーまたはタイムアウト通知フローの停止中に発生したタイムアウトを、ブローカーまたはタイムアウト通知フローが次に開始されるときに処理するかどうかを制御します。 デフォルト値は TRUE であり、これは実施されなかったタイムアウトがブローカーまたはメッセージ・フローの開始時に TimeoutNotification ノードによって無視されることを示します。 この値を FALSE に設定すると、実施されなかったタイムアウトはすべて、フローの開始時に TimeoutNotification ノードによって即時に処理されます。 保管されたタイムアウトをブローカーまたはタイムアウト通知フローの再始動の後も持続させるには、TimeoutControl ノードの「 要求の持続性 」プロパティーを「はい」または「自動」 (元の要求メッセージが持続するものである場合) に設定する必要があります。 |
AllowOverwrite | N | N | TRUE | このエレメントは、TRUE または FALSE に設定します。これは、Identifier の一致する後続のタイムアウト要求がこのタイムアウト要求を上書きできるかどうかを指定します。 デフォルト値は TRUE です。 |
TimeoutControl ノードで「要求ロケーション」を InputRoot.XML.TimeoutRequest に設定して、これらのプロパティーを読み取ります。 使用しているメッセージの別の部分からプロパティーを取得する場合には、それらのプロパティーの親エレメントの該当する相関名を指定します。 親エレメントの相関名は、ローカル環境に置くことができます。
TimeoutControl におけるこれらの値の使用法について詳しくは、TimeoutControl ノードを参照してください。