2011-01-23 9 views
3

BizTalkオーケストレーションが1つのスレッドで実行されているかどうかは誰でも確認できますか?複数の?脱水/再開中に、BizTalkエンジンは新しいスレッドを作成したり、同じスレッドを一時停止または起動したりします。 私はあなたの唯一の保証は、単一の形状は、単一のスレッドで実行されることであるデータベース内のグループアクティビティログに使用されることに、ユニークなリクエストIDを保存するためにスレッドコンテキストを使用してのオーケストレーションはシングルスレッドですか?

おかげ

+0

[threadStatic]に似た、オーケストレーションのためにユニークなオプションがありますか? スタティック変数を複数のオーケストレーションインスタンス間で共有しないでください –

答えて

7

を考えています中断することなく。次のシェイプは、別のスレッド、別のプロセッサ、または別のマシンで実行される可能性があります。

異なる形状間にデータを格納するためにThreadContextを使用することは間違いです。オーケストレーション変数が存在する理由と、なぜそれらが直列化可能でなければならないのかが理由です。

アクティビティログをグループ化する場合は、オーケストレーションインスタンスIDを使用します。オーケストレーションインスタンスIDは、オーケストレーションの存続期間にわたって同じであることが保証されています。

+0

オーケストレーションIDをロギングメソッドに渡していただきありがとうございますが、50 +サービス用のコードを変更する必要があるため、好ましいオプションではありません –

+1

これを追加するだけです。オーケストレーションを実行しているスレッドは、脱水されるとすぐに終了します。一度水を補給すると、別のスレッド上で、別のマシン上で実行される可能性があります。これはカスタムロギングエンジンですか? – Rich

+0

には、[threadStatic]に似た、オーケストレーションのためにユニークなオプションがありますか? staticを使用すると、複数のオーケストレーションインスタンス間で変数を共有しないでください –

関連する問題