2009-03-03 14 views
2

は、だから私は私の解決策のために必要なモデルがある送りますそれを昇進した財産に基づいて港の1つだけが行動する港のグループに渡す。BizTalkが次のようにポートグループとフィルタリング

それは次のようになります。

http://i40.tinypic.com/2zq61qh.jpg

あなたが送信ポートグループに「温度・アウト」を割り当てる場合は、メッセージがグループ内のすべてのポートに送信され、設定したフィルタの関わらず各ポートで私の理解から、これは期待される動作です(hereを読んでください)。

私はSDKのようにContent Based Routing(CBRサンプル)を使用するなど、他のオプションを検討しました。あなたはこれを見ることができますhere

私はこれを試して、オーケストレーションを完全に削除しました(実際には必要ありません)。しかし、大きなルーティング/サブスクリプションのエラーがあり、さらに調査すると、応答するポートを持っている場合はこれを行うことができないように見えます。その上の記事はhereです。私はかなり同じ問題をthisユーザが持っています。

最後に、オーケストレーションを使用するかどうかは関係ありません。しかし、私は、複数の送信ポートにメッセージを渡すことができる解決策が必要です。実際にはメッセージを使用して送信することしかできません。これは、他のものやハードコードの決定をオーケストレーションに変更することなく、ポートを簡単に編集して追加できるようにするために必要です。

答えて

1

CBRサンプルモデルが実際に機能することがわかりました。ルーティングの問題はサブスクリプションでした。私が送信応答ポートに送信ポートをサブスクライブする場合は、BTS.ReceivePortフィルタの代わりにBTS.SPName(送信ポート名)フィルタを設定する必要がありました。これにより、メッセージは正しくフィルタリングされました。あなたも答えはうまくいくはずですが、避けようとしていたオーケストレーションを使用する必要があります。

5

オーケストレーションの送信ポートでDirect Bindingを使用すると、メッセージボックスdbにメッセージを戻すことができます。各ポートグループは、複数のポートグループを使用して、目的のメッセージタイプに直接加入し、昇格されたプロパティでフィルタリングすることができます。

+0

私は解決策を見つけました。オーケストレーションを取り除き、2番目と3番目のポートにBTS.SPNameを定義したフィルタを入れました。(これはストアドプロシージャ名だと思っていましたが、今はポート名を送信しています)。ルーティングの問題は、完全に購読していなかったためです。 – achinda99

関連する問題