共用方式為


MessageBox 延遲問題疑難排解

在理想的世界裡,所有的訊息都應該在發佈到 MessageBox 資料庫時就進行處理和傳遞,這樣 MessageBox 資料庫的大小永遠都不會過度膨脹。 負責定期清除 MessageBox 資料庫資料表的 SQL 代理程式工作,會將 MessageBox 中不再受到參考的訊息立即移除。

不過,在真實世界的案例中,通常不是以可預期的線性方式接收訊息,所以 SQL 代理程式工作需要時間來清除 MessageBox 資料庫資料表。

因此,在某些案例中,MessageBox 可能會膨脹地相當快速。

下列情況可能會導致 MessageBox 過度膨脹而妨礙了整體效能:

  • 已停止具有 [允許主機追蹤] 選項組的 Biztalk 主機實例。 這是負責將追蹤資料從 MessageBox 資料庫移至 BizTalk 追蹤資料庫 (BizTalkDTADb) 的主控件。

  • SQL Server Agent未執行。如果負責將資料從 MessageBox 資料庫移至 BizTalkDTADb 資料庫的 SQL 作業未執行,就會發生此情況 [後續清除 MessageBox 中移動的資料]。 SQL 代理程式服務必須隨時都在執行,才能避免這種問題。

  • SQL Server即使SQL Server Agent正在執行,仍必須停用任何預設SQL Server作業。

  • BizTalkDTADb 資料庫過度成長 如果 BizTalkDTADb 資料庫成長非常大,導致 BizTalkDTADb 資料庫中的插入需要較長的時間,就會發生這種情況。 發生這種情況時,「追蹤資料傳遞服務」(Tracking Data Delivery Service,TDDS) 速度會變慢,導致 MessageBox 資料庫的待處理項目增多。 為了避免這個問題,您必須定期在 BizTalkDTADb 資料庫上執行 SQL 伺服器封存並將工作清除。

  • 過多的磁片 I/O 延遲 如果將資料傳入 MessageBox 資料庫的速率比系統可以處理的資料快,並將資料移至 BizTalkDTADb 資料庫,待辦專案可以在 MessageBox 資料庫中建置。 如果待處理的項目持續增多而無緩解,就會造成嚴重的問題,系統效能可能隨時間增長而每況愈下。 一種紓解這個問題的方式,是安裝速度更快的磁碟及 (或) 升級硬體,以協助確保系統可以從訊息積存的情況復原。

計畫未來

即使遵守了上述所有的最佳作法,隨著時間增長,移到 BizTalkDTADb 資料庫的追蹤資料量仍會累積成很大的量。 您必須實作資料庫維護計畫,以定期封存追蹤資料,使系統仍可保持最佳效能。

可保留在 BizTalkDTADb 資料庫中的歷程資料量,是依照系統所處理的訊息量而定。 對於工作量及輸送量不會暴增的系統而言,這個資料庫膨脹的速度較慢,可在 BizTalkDTADb 資料庫中保留較多的歷程資料。

建議您在 BizTalkDTADb 資料庫中保留最少量的資料,如此就不會影響執行階段的效能。