2011-10-20 3 views
2

私は自分のプロジェクトと2つのスキーマで2つのオーケストレーションを持っています(最初はリクエスト、2つ目はレスポンス)。 Orchestration 1の形状は、Receive(アクティブ化=真)です。要求を受け取り、Orchestration 2にルーティングします。後者は、レスポンスで応答するWebサービスへのリクエストを作成し、2分待ってから、新しいリクエストを自分のBizTalkサービスに送信します。どちらのプロジェクトも同じスキーマ(RequestおよびResponseスキーマ)を使用します。BizTalkの相関

Orchestration 2は、Webサービスに要求を送信するSendシェイプで初期化される相関セットを使用します。また、Orchestration 2は、以前にSendの形に設定された相関を持つメッセージを待っているReceiveの形をしています。ここで

は、シーケンス図である: enter image description here

そしてOrchestration 2があります: enter image description here

Send_1Receive_2形状は相関特性を設定しています。

問題は、Webサービスが私のbiztalkサービスにrequest2(上記の図を参照)を送信したときに、というメッセージが表示されるというメッセージが表示された場合です。メッセージは単一の要求応答サブスクリプション"相関関係を設定した場合、どのようになりますか?相関関係のある受信機があるので、私はrequest2がOrchestration 2にルーティングされると思っていました。

答えて

3

エラーメッセージは正しいです。

WebServiceからリクエストが送信されると、Orchestration2のアクティベーション受信シェイプにルーティングされます。

ただし、相関が有効であるため、追加のサブスクリプションが作成されるため、オーケストレーション2の3番目のReceiveシェイプにルーティングされることが予想されます。

要求スキーマを区別できない場合は、Orchestration2をアクティブ化するために追加条件を使用する必要があります。たとえば、コンテキストのプロパティに基づいて追加のフィルタを使用してOrchestration1からのリクエストをフィルタすることができます。

1つのリクエストは、WCFまたはSOAPアダプタから取得されたものですが、最初のリクエストはWCFまたはSOAPアダプタから取得されます。

+0

はい、うまくいきました。オーケストレーション1のReceiveシェイプにFilter式を設定しています。そのため、すべてが機能しています。 –