6

遅い (カスタム) BizTalk アダプターの問題に直面しています。

毎晩、アプリケーションは数分以内に 10,000 を超えるメッセージを MSMQ に送信します。残念ながら、BizTalk がそれらを処理するには数時間かかります。

メッセージを複数の関係者にルーティングするだけで、オーケストレーションはありません。あるパーティでは、カスタム アダプターを開発する必要がありましたが、このアダプター/インターフェイスは非常に低速です。したがって、BizTalk はアプリケーション全体を自動的に抑制し、この低速のアダプターを介して送信できる数のメッセージのみをキューから読み取ると思います。

したがって、MSMQ が空になるまで数時間かかります。

この遅いアダプターを停止し、たとえば、ローカル ファイル システムに書き込むファイル アダプターのみを有効にすると、MSMQ からの数千のメッセージを処理するのに数秒かかります。

BizTalk を微調整して受信メッセージをより高速に処理し、この送信ポートの送信メッセージを調整することはできますか? 残念なことに、1 つのパーティーが遅いために、他のすべてのパーティーがメッセージを待たなければなりません。

アドバイスありがとうございます!

敬具マイケル

4

2 に答える 2

6

Rate Based Throttling状態に陥っている可能性があります( MSDN を参照)。これは、パブリッシュ レート(受信メッセージのレート) が配信レート * レート オーバードライブ ファクター(送信されたメッセージのレート * スロットリングの割合) を超えた場合に発生します。

このスロットリング状態を回避する簡単な方法の 1 つは、BizTalk ホスト構成設定内でレート オーバードライブ ファクターを増やすことです。Rate Overdrive Factor を非常に高い値に設定する必要があるように思われるため、これはおそらくベスト プラクティスではありません。

ソリューションの設計方法に応じて、別の方法として、送信ポート/アダプターを独自のホスト インスタンスに分割することもできます。スロットリングはホスト インスタンスごとに実行されるため、この特定のアダプタの処理を分割することは、標準のアダプタ機能を介して他の関係者に配信されるメッセージのパフォーマンスに影響を与えなくなることを意味します。

于 2012-09-18T22:36:24.437 に答える
1

特にコメントを考慮すると、問題の解決に役立つ可能性のあるアーキテクチャ上のアプローチを考えることができます。

BizTalkを微調整して、着信メッセージをより高速に処理し、この送信ポートの発信メッセージを調整することは可能ですか?1つの遅いパーティのために、他のすべてのパーティがメッセージを待たなければならないのは残念です。

パーティごとに、新しいMSMQ「パーティキュー」を作成し、着信(大量のメッセージ)キューからそのキューに直接書き込みます-着信メッセージをサブスクライブしてそれぞれに書き込む複数の「パーティ」送信ポートを持つ単一の受信ポート/場所「パーティキュー」。

これで、個々の「パーティキュー」から読み取り、関連する送信ポート(必要に応じて低速アダプタを使用)を使用してメッセージを送信できます。これは、単一の送信ポートを使用するよりもはるかに高速です。事実上、受信側を送信側から切り離しています。

また、ホスト/ホストインスタンスの戦略を見直して、スローティングの観点から適切に分離できるようにすることも検討します。

于 2012-10-03T10:22:26.077 に答える