次の方法で共有


メッセージ ボックスの遅延に関する問題のトラブルシューティング

理想の世界では、メッセージはいずれもメッセージ ボックス データベースに公開された時点で速やかに処理および配信され、メッセージ ボックス データベースのサイズが過剰に増加することはないかもしれません。 メッセージ ボックス内に参照されなくなったメッセージがあれば、メッセージ ボックス データベース テーブルを定期的にクリーンアップする SQL エージェント ジョブによってすぐに削除されます。

ところが現実の世界では、メッセージが予測可能な一定速度で届くことはまれで、SQL エージェント ジョブがメッセージ ボックス データベース テーブルをクリーンアップするには時間がかかります。

このため、シナリオによっては、メッセージ ボックスのサイズが急速に増加する可能性があります。

次の場合はメッセージ ボックスのサイズが過剰に肥大化し、処理全体の妨げとなる可能性があります。

  • [ホストの追跡を許可する] オプションが設定されている Biztalk ホスト インスタンスが停止します。 これは、メッセージ ボックス データベースから BizTalk 追跡データベース (BizTalkDTADb) への追跡データの移動を行うホストです。

  • SQL Server エージェントが実行されていません。これは、MessageBox データベースから BizTalkDTADb データベースへのデータの移動を担当する SQL ジョブが実行されていない場合に発生する可能性があります (その後、移動されたデータを MessageBox に消去する)。 この問題を回避するため、SQL エージェント サービスを常に実行しておくことが非常に重要です。

  • SQL Serverジョブは無効になりますSQL Server エージェントが実行されている場合でも、既定のSQL Server ジョブを無効にすることが不可欠です。

  • BizTalkDTADb データベースが過剰に増加 するこれは、BizTalkDTADb データベースが非常に大きくなり、BizTalkDTADb データベースへの挿入に時間がかかる場合に発生する可能性があります。 このような状態になると、TDDS (Tracking Data Delivery Service) によるデータの移動速度が低下し、メッセージ ボックス データベースにバックログが蓄積されるようになります。 この問題を回避するには、BizTalkDTADb データベースに対して SQL Server のアーカイブと削除のジョブを定期的に実行することが重要になります。

  • ディスク I/O の過剰な待機時間 MessageBox データベースへのデータの受信速度が、システムが BizTalkDTADb データベースにデータを処理して移動できる速度よりも速い場合、バックログは MessageBox データベースに構築できます。 バックログが増加し続けることは深刻な問題であり、システムのパフォーマンスが時間の経過に伴って低下します。 この問題を軽減する 1 つの方法は、時間の経過と共に発生するメッセージ バックログからシステムが確実に回復できるように、より高速なディスクの導入やハードウェアのアップグレードを行うことです。

将来の計画

上記のすべてのベスト プラクティスに従ったとしても、時間の経過と共に、BizTalkDTADb データベースに移動される追跡データの量は非常に大きくなります。 システムが最適なパフォーマンスを維持できるように、追跡データを定期的にアーカイブするデータベース メンテナンス プランを実装することが重要です。

BizTalkDTADb データベースに保持できる履歴データの量は、システムを経由してプッシュされるメッセージの量に応じて異なります。 高い負荷やスループットが発生しないシステムでは、このデータベースのサイズは比較的緩やかに増加するため、より多くの履歴データを BizTalkDTADb データベースに保持することができます。

実行時のパフォーマンスを損なわないように、BizTalkDTADb データベースに保持するデータは最小限にすることをお勧めします。