2013-11-14 46 views
0

我們目前正在嘗試通過BizTalk流程處理一個相當大的文件,並在處理時不斷獲取OutOfMemoryExceptions。我有一個自定義反彙編程序,單獨處理每個記錄,以便不讀取內存中的整個消息。該環境目前處於開發階段,因此SQL和BizTalk在同一臺計算機上運行。該機器具有16 Gb的內存,但BizTalk只有32位體系結構。在BizTalk中處理(〜200MB)文件

是否有任何主機設置可以更改爲允許從頭到尾處理文件?

回答

2

任何原因你不能運行64位BizTalk?您可以調節主機設置,但它們與節流相關。 OutOfMemoryException是一個嚴重的錯誤,BizTalk實際上幾乎沒有任何控制權。

你所描述的絕對是可行的。我已經完成了。

首先查看組件的基礎知識。你的消息實例是否被正確地解除引用?

你是如何提交給MessageBox的?如果它是通過正常的Disassembler API,那麼它們的消息將在內存中駐留一段時間。使用VirtualStream可以提供幫助。

+0

我會試試這些。我認爲這個問題可能是編排。 – newtonrd

+0

@newtonrd不惜一切代價避免在編排中使用xpath表達式。另外,是否有任何選項將傳入文件分成更小的塊?信封模式方法可能對於您和「分散和聚集」模式是理想的。 –

+0

@PieterVandenheede是的。自定義反彙編器會將傳入文件轉換爲更小的塊,因此一次只能將一條記錄加載到內存中。 – newtonrd