が背景明示のBizTalkオーケストレーション内からサブスクリプションを削除するには、どのような方法:ここで説明Seroter's Round Robin技術に類似のBizTalkゾンビ -
我々は集約、シングルトンとmultitonオーケストレーションの多くを利用して、(のBizTalk 2009) 。
これらのオーケストレーションタイプはすべて、通常はタイマーによって定義されるかなり集約的な出口または継続ポイントを持っています。つまり、OrchがX分以内にそれ以上のメッセージを受信していない場合、 Y分以上経過してメッセージがなくなった後に終了します。 (また、degraded performance after large numbers of messagesに関する懸念がある期間にわたってシングルトンにサブスクライブされているため、シングル/ Nトーンを終了します)。
私たちがゾンビに対して緩和しようとしたように、非同期のリファクタリングされたオーケストレーションで継続処理を開始することによって、「よく」タイムド・メッセージがゾンビを引き起こす可能性のある弱点が常に存在します。
メッセージがサブスクリプションの1つにゾンビを引き起こした場合、そのメッセージは他のサブスクライバにも伝えられていないようです(つまり、orchs(つまり、orchs)はオーケストレーションの「既に完了した」形状に関連付けられています) 「ゾンビを引き起こしている」オーケストレーションから完全に切り離されている)、すなわちゾンビを引き起こすメッセージは処理されない。
質問
だから私は、オーケストレーションはどこのポイントを超えて「進行」したら、明示的に実行しているオーケストレーションから相関サブスクリプションを削除するために、プログラムまたはそうでなければ、誰もが別の方法を持っている場合は見ることに非常に興味がありますこの相関メッセージに興味があります。
この時点では、MsgBoxDBに対して、反映されたBizTalk API呼び出しや直接SQL削除などのハッキングソリューションも検討されます。
このperf。問題は2006年で、オーケストレーションを停止する必要がありますか?私はそのパターンをbt2009で成功した大量のメッセージと共に使用しました。オーケストレーションは継続的に実行されました。安全にそれらをシャットダウンするために、私は音源を停止し、次にオーケストレーションを止めました。 –
残念ながら、着信トラフィックのほとんどはシングルMQキューから来ているため、受信ポートを停止するとすべてのアプリケーションに影響します。しかし、あなたが正しいです - 真実の証拠よりも漏洩に関する「懸念」のケースです(例えば、シングルトンに添付された50k +メッセージが気になることを見てください)。例外的な負荷の下では、シングルトンオーチのいくつかを一時停止すると正常に動作し、サーバが回復/完了するとすぐに再開します(デザインによっては、レイテンシが重要ではないメッセージだけがシングルトン/ラウンドロビンに割り当てられるため)。 – StuartLC
既存のキューと現在の受信者の間に別のキューを追加することはできますか?そうすれば、新しいレシーバーを停止し、オーケストレーションを正常に終了することができます。 –