由于所需的管道组件似乎无法访问数据库以获取消息的详细信息,因此我计划使用主机限制来限制 BizTalk 在接收位置处理的文件数量。我希望能够指示应在 Y 秒(或任何其他可行的时间跨度)内处理 X 条消息。有谁知道可以使用哪些限制设置来强制这种行为?
我知道如何设置值,但是我找不到最佳配置。
(注意:其中一种解决方案也可能会调整管道,但它包含无法调整的第三方组件。)
由于所需的管道组件似乎无法访问数据库以获取消息的详细信息,因此我计划使用主机限制来限制 BizTalk 在接收位置处理的文件数量。我希望能够指示应在 Y 秒(或任何其他可行的时间跨度)内处理 X 条消息。有谁知道可以使用哪些限制设置来强制这种行为?
我知道如何设置值,但是我找不到最佳配置。
(注意:其中一种解决方案也可能会调整管道,但它包含无法调整的第三方组件。)
从BizTalk Server 如何实现主机限制BizTalk 看
唯一限制入站的是消息发布的速率,但是在管道/端口处理完消息之后这是可能的,因此在这种情况下可能没有任何用处,但您必须对其进行测试。
您可能希望在它自己的主机下设置该进程,因此如果它达到限制阈值,它也不会限制其他所有内容。
如果可能,您应该将组件移动到发送端口管道,因为限制发送端口更加可控。一种方法是将发送端口设置为有序传递,尽管这可能会导致积压,尤其是在您收到暂停消息时。
我认为您在这里最直接的方法是编写自定义适配器。不幸的是,开箱即用的文件适配器不直接支持限制/轮询间隔,如果它通过 ADO.NET 直接访问数据库,我认为已经给出的建议不会直接影响自定义管道处理(但它可以试试看不会有什么坏处)。您可以在文件适配器设置上设置 BatchSize 属性,但即便如此,也没有什么可以阻止它一次又一次地尽可能快地提交该批大小。
可以创建自定义适配器以等待一段时间,然后再提交其他文件进行处理。您可以基于SDK 文件适配器示例。