2

我有一个发送端口去网络服务。最多,我希望一次只向 Web 服务发送 10 个请求。这可以在biztalk中做到吗?希望通过配置?

4

3 回答 3

4

Richard Seroter的一篇文章处理了这种确切的情况。

您需要在 btsntsvc.exe.config 文件中设置最大连接数:

<add address = "*" maxconnection = "2" />

您按 IP 地址过滤并将 maxconnections 设置为您需要的位置。

HTTP 适配器上的 MSDN 文档中,它指出地址可以是 URL 或 IP,示例配置片段如下:

<configuration>
  <system.net>
    <connectionManagement>
      <add address = "http://www.contoso.com" maxconnection = "5" />
      <add address = "http://www.northwind.com" maxconnection = "2" />
    </connectionManagement>
  </system.net>
</configuration>

然后,您需要在发送端口中打开有序传递,以确保 BizTalk 端不会超时到有限的连接数。

虽然这看起来完全符合您的要求,但我也会考虑使用某种编排模式来管理它,使用控制器编排来限制可以一次运行的子“发送到服务”编排的数量。至少对我来说,在不需要外部文档的情况下,这会更容易理解。

于 2009-12-15T20:23:14.503 回答
0

如果您使用的是内部站点,则不需要添加以下语法

例如,您的 Web 服务链接是http://example.com/ms/sample.aspx add address = " http://example.com " maxconnection = "5"

于 2014-05-09T08:21:29.437 回答
0

关于大卫霍尔的回答需要考虑的几件事

如果您在发送端口上设置了有序传递,您将极大地影响吞吐量,特别是如果您有很多编排对同一端口进行多次调用,因为这些编排将脱水并等待他们的消息打开端口。如果您有一些实例是来自 Web 服务的请求响应,而其他实例是高负载且不紧急的,也会导致问题。

为避免这种情况,我们使用了同样来自Richard Seroter的BizTalk 编排节流模式,我们最初只允许一定数量的高容量编排一次启动,并为低延迟请求/响应调用留出一些空闲连接.

此外,maxConnections 设置是针对每个主机实例的,因此您还必须避免将多个发送端口发送到位于不同主机实例上的同一服务器,或者如果组中有多个 BizTalk 服务器并且无法避免,则必须设置 maxConnections = TargetServermaxConnections / 主机实例

于 2016-07-06T19:24:04.027 回答