2013-05-06 66 views
1

我正在做一些BizTalk 2010安裝的性能測試,其中一項測試涉及消耗多GB的文件。我收到一個非常簡單的錯誤,但它缺少一些關鍵信息,而且我無法根據文檔找出它的結果。由於磁盤空間導致BizTalk接收管道故障

錯誤在於接收管道失敗; 「原因:磁盤空間不足。」

嗯。哪個磁盤?它可能是安裝Windows的分區,安裝BizTalk的分區,數據庫服務器等等。它們似乎都有足夠的空間來容納文件,但它會變得更大,因爲它被轉換爲XML,所以它可能是其中的任何一個。

我在尋找的建議於追蹤問題的根源,所以我可以得到我的測試,備份和運行。

+0

我發現文件中存在驗證錯誤;應用程序事件日誌已滿。我也注意到運行文件適配器的服務器上的臨時文件非常大(12 + GB)。不知道這是與錯誤還是我試圖處理的文件大小的一個簡單症狀有關。 。 。 – Ickster 2013-05-07 00:15:27

回答

3

這可能是您的臨時文件夾導致您的磁盤運行已滿。 當大文件得到處理時(特別是在映射或反彙編程序中),虛擬流會將部分消息寫入磁盤,以便以流方式工作並防止內存泄漏。
這是將臨時文件夾(%temp%變量)移動到另一個磁盤而不是c:\驅動器的最佳實踐(特別是在生產環境中)。這是BizTalk存儲所有大型消息片段的地方。

從MSDN幫助:

默認情況下,被映射在緩存文件系統文件被寫入到BizTalk Server計算機的%temp%目錄。將%temp%環境變量的設置更改爲非系統磁盤,以便在映射期間將大消息緩存到文件系統時提高性能。

更多信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/aa560481.aspx

0

如果錯誤是磁盤已滿,那麼最有可能是因爲SQL Server正在運行的磁盤空間不足。

不過,既然你提到的文件大小超過千兆字節是大小,因爲在BizTalk服務器正在運行的虛擬磁盤空間的錯誤可能是可能的。這可能是因爲您使用的接收管道使用XmlDocument類。 XmlDocument類在內存空間方面效率很低,因爲它通常會佔用內存大小約10倍的文件大小。所以,如果你有大約1 GB的XML文件,使用XmlDocument將佔用約10 GB的RAM。

既然你提到的文件尺寸範圍在12GB +,它極有可能在BizTalk服務器正在運行的RAM內存,除非你有數百GB的內存。發生這種情況時,Windows操作系統的默認設置是將多餘的數據從RAM存儲到名爲虛擬磁盤空間的硬盤中。看起來機器的磁盤空間不足 - 這可能會解釋您遇到的錯誤。

可以肯定的,如果你確實運行內存和隨後的虛擬硬盤空間,您可能要分析的BizTalk Server機器的虛擬磁盤空間和/或內存使用。根據該調查,你在得到一個分辨率方面有幾個選擇,

  • 同時增加內存和硬盤空間 - 這可能是一個快速簡便的方法來達到所需的性能,無需任何代碼和/或設計/架構重構。
  • 中斷文件大小 - 如果可能的話,將文件大小分成較小的文件。
  • 使用自定義管道和管道組件 - 您可能想要調查