このトピックには、以下のセクションが含まれています。
メッセージ・フローがメッセージを処理する順序を制御するには、FlowOrder ノードを使用します。入力メッセージは第 1 の出力ターミナルに伝搬され、このターミナルに接続したノードのシーケンスによって処理されます。 メッセージ処理が完了すると、制御は FlowOrder ノードに戻ります。 メッセージ処理が正常に完了した場合、入力メッセージは第 2 の出力ターミナルに伝搬され、このターミナルに接続したノードのシーケンスによって処理されます。
第 2 の出力ターミナルを経由して伝搬されるメッセージは入力メッセージであり、第 1 のターミナルに接続されたノードのシーケンスでメッセージが変更されたとしても、決して変更されません。
後続ノードの実行順序が重要であるような任意の場所で、メッセージ・フロー内にこのノードを含めることができます。
複数のノードを第 1、第 2 の出力ターミナル、あるいはその両方に接続すると、各ターミナルで複数の接続が処理される順序が ランダムおよび予測不能になります。 ただしメッセージは、第 2 の出力ターミナルに接続した任意のノードに伝搬される前に、第 1 の出力ターミナルに接続されているすべてのターゲット・ノードに伝搬され、正常に完了する必要があります。
メッセージに必要な 1 つの処理シーケンスが他の処理シーケンスよりもかなり小さいという状況では、FlowOrder ノードを組み込むとご使用のメッセージ・フローのパフォーマンスが向上します。 小さい方のシーケンスを第 1 のターミナルに接続すると、障害を迅速に識別して、第 2 のより大きな処理シーケンスを実行せずに済みます。
ワークベンチでは、FlowOrder ノードは次のアイコンで表されます。
このノードの使用例として、会社がインターネットを使用する顧客からの注文を受けることを想定します。 注文を受け取ると、注文は FlowOrder ノードの最初のターミナルに接続されたノードによって処理され、データベースにおける在庫レベルが借方記入され、送り状が提出されます。 顧客が顧客詳細を他の提供業者に送信してもよいと指示したかどうかを調べるための検査が行われます。 顧客がこの情報を公表したくないことを示した場合には、この検査は失敗し、さらに処理を行いません。顧客が自分の詳細を他の会社との間で共有してもよいと言う場合 (つまり、テストが成功する場合)、入力メッセージは第 2 のターミナルに伝搬されるので、顧客詳細をメーリング・リストに追加することができます。
FlowOrder ノードのインスタンスをメッセージ・フローに入れると、FlowOrder ノードを構成することができます。 エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。 ノードのプロパティーが表示されます。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。
以下のように、FlowOrder ノードを構成します。
「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。
FlowOrder ノードには、その操作に影響を与える構成可能なプロパティーがありません。 第 1 および第 2 の出力ターミナルをメッセージ・フロー内の後続のノードに接続することによって、操作方法を決定します。
第 2 のターミナルを経由して伝搬されるメッセージは、第 1 のターミナルを経由して伝搬されるメッセージと同一です。処理の第 1 のフェーズの結果として導入された変更は、このノードでは無視されます。
処理の第 1 のフェーズで障害が生じると、FlowOrder ノードは制御を取り戻さず、第 2 のターミナルを経由してメッセージを伝搬しません。
FlowOrder ノード・ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 計算時に障害が検出された場合、メッセージがルーティングされる出力ターミナル。 |
First | 最初のインスタンスで入力メッセージがルーティングされる出力ターミナル。 |
Second | 2 番目のインスタンスで入力メッセージがルーティングされる出力ターミナル。 First へのルーティングが正常に行われた場合のみ、メッセージはこのターミナルにルーティングされます。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。
FlowOrder ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |