メッセージ ボックスの遅延に関する問題のトラブルシューティング
理想の世界では、メッセージはいずれもメッセージ ボックス データベースに公開された時点で速やかに処理および配信され、メッセージ ボックス データベースのサイズが過剰に増加することはないかもしれません。 メッセージ ボックス内に参照されなくなったメッセージがあれば、メッセージ ボックス データベース テーブルを定期的にクリーンアップする 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 データベースに保持するデータは最小限にすることをお勧めします。