0

由于所需的管道组件似乎无法访问数据库以获取消息的详细信息,因此我计划使用主机限制来限制 BizTalk 在接收位置处理的文件数量。我希望能够指示应在 Y 秒(或任何其他可行的时间跨度)内处理 X 条消息。有谁知道可以使用哪些限制设置来强制这种行为?

我知道如何设置值,但是我找不到最佳配置。

(注意:其中一种解决方案也可能会调整管道,但它包含无法调整的第三方组件。)

4

2 回答 2

1

BizTalk Server 如何实现主机限制BizTalk 看

  • 正在使用的内存量(系统范围内存和主机进程内存)。
  • 正在传递或处理的进程中消息的数量(出站限制的阈值)。
  • 正在使用的线程数。数据库大小,由所有主机的队列表中的项目数以及假脱机和跟踪表中的项目数来衡量。
  • 并发数据库连接数。
  • 消息发布(入站)和传递或处理(出站)的速率。

唯一限制入站的是消息发布的速率,但是在管道/端口处理完消息之后这是可能的,因此在这种情况下可能没有任何用处,但您必须对其进行测试。

您可能希望在它自己的主机下设置该进程,因此如果它达到限制阈值,它也不会限制其他所有内容。

如果可能,您应该将组件移动到发送端口管道,因为限制发送端口更加可控。一种方法是将发送端口设置为有序传递,尽管这可能会导致积压,尤其是在您收到暂停消息时。

于 2015-09-29T20:16:35.397 回答
0

我认为您在这里最直接的方法是编写自定义适配器。不幸的是,开箱即用的文件适配器不直接支持限制/轮询间隔,如果它通过 ADO.NET 直接访问数据库,我认为已经给出的建议不会直接影响自定义管道处理(但它可以试试看不会有什么坏处)。您可以在文件适配器设置上设置 BatchSize 属性,但即便如此,也没有什么可以阻止它一次又一次地尽可能快地提交该批大小。

可以创建自定义适配器以等待一段时间,然后再提交其他文件进行处理。您可以基于SDK 文件适配器示例

于 2015-09-30T19:48:20.523 回答