パラレルなコンボイ
パラレルなコンボイによって、複数の単一メッセージを結合して必要とされる結果を実現することができます。 関連する一連のメッセージは任意の順序で受信されることがありますが、BizTalk Server は、プロセスの開始前にそのメッセージのすべてを受信する必要があります。
たとえば、病院が新しい患者を受け入れる場合、病院は、保険情報、病歴、連絡先情報など患者からの情報をいくつか必要とします。 保険の専門家、看護士、受付など職種の異なる何人かの人でこの情報を収集します。 これらの情報は異なる複数のシステムで処理されます。 これらの情報がどのような順序で収集され、提出されるかは決まっていません。 たとえば、情報収集者は別の患者の相手をするのに忙しいかもしれないし、医療記録部門のスケジュールが遅れている場合や保険システムが正しく機能していない場合もあります。 患者に関するこの情報を組織立った方法で収集することは、その患者が病院にいる間は常に必要となります。 これによって、患者は適切な医療処置と正確な医療費の請求を受けることが保証されます。
上記のシナリオは、パラレルなコンボイ メッセージの処理を必要とするビジネス シナリオの例です。 そのビジネス要件では、患者を病院に受け入れる前に、3 つの異なる種類のメッセージを受け取ることが指定されます。 これらの 3 つのメッセージは、保険メッセージ、病歴メッセージ、患者メッセージです。 患者に関するこれらのメッセージのいずれもが最初に届くメッセージとなる可能性があり、これによって競合状態が発生します。 この問題を解決するには、3 つの Receive 図形が Parallel Actions 図形に配置され、各受信は Activate = True としてマークされます。 これによって、3 つのうちどのメッセージでもオーケストレーションを開始できるようになります。 オーケストレーション インスタンスは、処理をさらには進めず、他の 2 つのメッセージが到着するまで待機します。
パラレルなコンボイは、BizTalk Server の "パラレルな相関受信" のメッセージング デザイン パターンを使用して実装できます。 並列相関受信は、 Parallel Actions 図形の 2 つ以上の分岐の相関受信ステートメントです。 関連付けを複数の並列タスクで初期化する場合は、関連付けられた受信のそれぞれで、まったく同じ関連付けのセットを初期化する必要があります。 相関メッセージを受信する最初のこのようなタスクは、実際の初期化を実行し、オーケストレーションの [並列アクション] 図形の他のタスクに対して検証が実行されます。
並列コンボイ実装の例については、 の SDK サンプル「Parallel Convoy」 https://go.microsoft.com/fwlink/?LinkId=73703を参照してください。