【问题标题】:How many records BizTalk EDI Batching Service can handle?BizTalk EDI 批处理服务可以处理多少条记录?
【发布时间】:2016-10-12 22:55:37
【问题描述】:

我部署了一个 BizTalk 应用程序来组装 X12 834 文​​件。 它可以很好地组装一个包含大约 100K 记录的有效 EDI 文件,生成的最终文件约为 70-80M。

但是当记录数达到约 1.2M 时,批处理服务的性能明显下降,完成批处理需要很长时间。

我尝试将批处理配置为大约每 200K 交换释放一个文件,它可以生成多个文件,但在其中大约 500K 记录馈送后性能也变得不可接受。

我什至尝试在开始批处理之前运行 bts_CleanupMsgbox 脚本来清除 MsgBox 中的所有内容。

所以问题是:BizTalk 批处理服务可以处理这么多数据吗?性能问题只是由批处理服务的设计引起的(在编排中的每个持久点中存储为 XML/保存状态到数据库),或者我可以通过一些性能调整来归档以使用这种数据量组装文件。

【问题讨论】:

标签: biztalk edi


【解决方案1】:

我认为内置批处理不适用于如此大量的数据。

你有什么理由需要这么大批量?我做了很多EDI,但从来没有遇到过这样的要求。

我不知道这是否适用于您,但您实际上可以通过映射到 X12InterchangeXml 架构来绕过整个内置的 EDI 批处理编排。另一个优点是您还可以控制交换中消息的顺序。它有一些技巧,但总的来说这可能会更高效。

【讨论】:

  • 我现在正在做的是绕过批处理服务,将每个记录作为单独的 EDI 文件出站到临时文件夹,然后我有一个 Windows 服务来获取所有这些文件,然后使用正则表达式来获取内容 (ST-SE) 部分,合并为单个 EDI 文件。
  • 如果我对您的理解正确:您实际上在做的是至少处理每个文件 3 次。这不是很有帮助,因为您说由于资源限制,处理速度非常慢。采用不同的方法可能会为您节省大量的处理能力。您是否考虑过此位置“C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\XSD_Schema\EDI\X12_BatchSchema.xsd”上​​的 X12 批处理架构?
  • 我没有直接使用这个架构。但是这个模式是我理解的批处理服务生成的消息类型。那么您是否建议使用我自己的编排使用此架构构建消息?
  • 让我更清楚地解释我目前的方法。现在,我正在使用 BizTalk 为每条记录构建 EDI 文件,这是通过从数据库架构到 X12 架构的映射以及 EDI 发送管道来完成的。创建所有这些文件后,Windows 服务将拾取这些文件,擦除 ISA-IEA 和 GS-GE 部分,只保留 ST-SE 部分,将所有这些 ST-SE 与新的 ISA- 合并为一个文件- IEA 和 GS-GE 包裹。计算 ST-SE 计数以得出正确的 GE01 值。然后就可以生成一个有效的X12了,
【解决方案2】:

首先,您应该仔细检查现行要求。 120万已经很多了,834我没有很多。不是说不能发生,而是120万对双方来说都很大。

120 万成员 并不令人震惊,但 120 万个人 834 将非常、非常、非常不寻常。你能将大约 10K 左右的成员批量分配到 1 834 中吗?那么这只是〜100 834。

【讨论】:

  • 约翰斯。我不是在创建 120 万个 834 文​​件,而是在创建 834 个文件,拥有 120 万个成员。而且由于批处理服务的性能问题,现在我必须创建 1.2M 临时 834 文​​件并使用 Windows 服务将它们组合起来。
  • 我的意思是一个 834 ST 可以容纳多个成员,所以如果成员按每 834 ST 10K 分组,那么您只是 BizTalk Batching ~100 834。
  • 我明白了。但这意味着一条 834 消息包含 10k 个成员。消息会很大。
  • 但它会小于只有一个成员的 10K 个人 834 ST。您是否有硬性要求一次性发送整个人口?如果没有,你可能有点想多了。
猜你喜欢
  • 2017-12-01
  • 2014-12-20
  • 2015-02-22
  • 2017-01-11
  • 2023-03-02
  • 1970-01-01
  • 2011-03-10
  • 2020-02-12
  • 1970-01-01
相关资源
最近更新 更多