EDI 接收管道性能问题

EDI Receive Pipeline performance issue

我有一个文件接收位置,其中 edireceive 管道配置为接收传入的 HIPPA 5010 837 文件。

正常的传入文件大小为 4 到 6 兆字节,包含 3K 到 5K 条记录。部署的 837 架构是具有 subdocument_break="yes" 的 "multiple" 版本。因此,已处理的文件将为每个文件生成 3K 到 5K 条消息。

管道工作正常,可以按预期将文件拆分为多条消息。对于 1 个文件,BizTalk 处理时间不到 5 分钟。

问题是当超过 10 个文件同时放入传入文件夹时,Biztalk 将开始并行处理这些文件。但是处理这些文件需要几个小时,BizTalk Host 消耗超过 10G 内存。

一些其他信息:

我的问题是:这种表现正常吗?我该如何改进它?

BizTalk 并非真正用于一次处理多个大文件,并且文件适配器没有任何内置方式来限制一次提取的文件数量。

有一个商业解决方案可以帮助解决这个问题(披露:我在 Tallan 工作并致力于此解决方案)称为 T-Connect EDI Splitter (https://www.tallan.com/products/t-connect/edi-file-splitter/)。用例是将管​​道上的文件拆分为更易于管理的块,以便在其他地方使用。不幸的是,这不是一项微不足道的任务。

如果您的文件足够小,可以在它们到达 EDI 接收管道之前进行处理而无需拆分它们(您不需要进一步拆分它们,您只需要一次处理一个),您将拥有想出一个更复杂的消息流来处理这个问题 - 使用 PassThrough 传输接收它们,将它们发送到可以使用它们的地方,然后使用第二个接收位置轮询它们,该位置提供更精确的轮询控制。

您也可以只编写自己的适配器来提供轮询和间隔设置,但那样会更加复杂和混乱。

你是对的,5K 消息不是真正的问题,是同时有 5 批 5K 消息导致了问题。

要序列化分批处理,您可以使用带有环回适配器的有序交付双向发送端口,在接收端分批处理 EDI。在这种情况下,初始接收位置将是 PassThrough。

您可以在此处找到多个环回适配器:http://social.technet.microsoft.com/wiki/contents/articles/12824.biztalk-server-list-of-custom-adapters.aspx#jjj