2010-03-30 42 views
3

我們正在將大平面文件加載到BizTalk Server 2006(原始版本,不是R2) - 大約125 MB。我們對它運行一個映射,然後取每一行並向存儲過程發出一個呼叫。OutOfMemoryException正在處理大文件

我們的業務流程處理過程中收到OutOfMemoryException異常,Windows服務重新啓動,採用全2 GB內存,並再次崩潰。

該服務器是32位和設置爲使用/ 3GB開關。

另外我已經分離流入3個主機 - 一個用於接收,另一個用於配器,和第三對發送。

任何人都有獲得此文件來處理wihout錯誤有什麼建議?

感謝, Krip

回答

2

它在哪裏崩潰?它是否使它通過變換形狀?另一個嘗試的建議是在接收端口中運行轉換。爲了更有效的處理,你甚至可以去掉消息並且讓多個同步的編排實例調用存儲的特效。這肯定會減少內存配置文件並提高性能。

3

如果這是一個通過地圖發送的平面文件,您將它轉換爲XML的權利?規模的增加可能是巨大的。 XML可以輕鬆地在平面文件上添加5-10倍。特別是如果您使用描述性或長xml標籤名稱(通常您會這樣做)。

簡單的東西你可以嘗試是將XML節點重命名爲較短的名稱,根據記錄的數量(聽起來好像很多),它實際上可能對你的內存佔用量相當顯著的影響。

也許越來越多的企業的做法,將是一個自定義管道成可以通過系統更易管理的塊(類似於克里斯建議)喂單獨的消息分組來細分這個。然後系統調節和內存指標可以接管。如果不知道更多關於數據的信息,很難說如何做到這一點,但是對於125 MB的文件,我猜測你可能有很多不需要按順序處理的重複行。

+0

非常有趣。有意義的是,較小的XML節點名稱意味着較小的數據包大小。感謝您的提示! – Krip 2010-04-07 10:04:30