首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OutOfMemoryException处理大文件

OutOfMemoryException处理大文件
EN

Stack Overflow用户
提问于 2010-03-30 21:21:17
回答 2查看 466关注 0票数 3

我们正在将一个大的平面文件加载到BizTalk Server2006(原始版本,而不是R2) -大约125MB。我们对它运行一个map,然后获取每一行并调用一个存储过程。

我们在编排处理过程中收到OutOfMemoryException,Windows Service重新启动,占用了全部2 GB内存,然后再次崩溃。

服务器为32位,并设置为使用/3GB开关。

此外,我还将流分离为3个主机-一个用于接收,另一个用于编排,第三个用于发送。

有没有人有任何建议让这个文件处理时没有错误?

谢谢,克里普

EN

回答 2

Stack Overflow用户

发布于 2010-04-07 06:44:49

如果这是通过映射发送的平面文件,那么您是在将其转换为XML,对吗?规模的增长可能是巨大的。XML可以很容易地在平面文件上添加5-10倍的因子。特别是当您使用描述性或长xml标记名时(通常您会这样做)。

您可以尝试一种简单的方法,将xml节点重命名为更短的名称,这取决于记录的数量(听起来似乎很多),这实际上可能会对您的内存占用产生相当大的影响。

也许更企业的方法是在自定义管道中将其细分为单独的消息包,这些消息包可以通过系统以更易于管理的块的形式提供(类似于Chris的建议)。然后,系统节流和内存指标可以接管。在不了解更多数据的情况下,很难说如何最好地做到这一点,但是对于一个125MB的文件,我猜您可能有一大堆不需要按顺序处理的重复行。

票数 3
EN

Stack Overflow用户

发布于 2010-03-30 22:52:59

它在哪里崩溃?它是否通过了变换形状?另一个可以尝试的建议是在接收端口中运行转换。为了更有效地处理,您甚至可以讨论消息,并让多个同步编排实例调用存储的proc。这肯定会减少内存配置文件并提高性能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2545470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档