2010-03-30 54 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