Biztalk Server 2009-如何修改MaxConcurrentSessions



我们在WCF跟踪日志中收到以下错误。

系统达到了为"MaxConcurrentSessions"设置的限制。此油门的限制设置为10。可以通过修改serviceThrottle元素中的属性"maxConcurrentSessions"或修改行为ServiceThrottlingBehavior 的"maxConcurrentSessions"属性来更改Throttle值

如果不在WCF适配器上使用自定义绑定,则无法找到修改"MaxConcurrentSessions"属性的好答案。

查看了以下文章,但不想更改现有的绑定

http://msdn.microsoft.com/en-us/library/dd203050%28v=bts.10%29.aspx

还有一点:工作一段时间,当我们得到负载时,所有东西都会锁定

谢谢,克里希纳。

您没有提到您正在使用的绑定,但我猜测它是WCF-wsHttpBindingbasicHttpBinding不支持Sessions AFAIK)。

我建议您切换到WCF自定义,因为它有更多的配置选项。只需将绑定类型选择为wsHttBinding,它将与WCF wsHttpBinding(我们已经使用WCF Custom配置了所有基本和wsHttp接收位置,没有任何问题,FWIW)

您需要在接收位置的行为选项卡上手动添加serviceThrottling行为。来自MSDN

在ServiceThrottlingBehavior服务的任何元素之前行为可以修改,必须首先添加serviceThrottlingWCF自定义*传输的"行为"选项卡的行为扩展"属性"对话框。将serviceThrottling添加到的列表行为,选择WCF自定义*传输的"行为"选项卡"属性"对话框,在"行为"下的"服务行为"上单击鼠标右键,单击"添加扩展",选择"serviceThrottling",然后单击"确定"。然后单击以选择下可用的属性ServiceThrottlingElement,并将属性的值更改为需要。

您可能还需要同时增加maxConcurrentCallsmaxConcurrentInstances

.NET 4中的默认建议是至少16*内核,尽管上面的链接建议maxConcurrentCalls的内核数>=200。

也就是说,您可能会发现BizTalk主机节流在持续一段时间的高传入负载后开始生效,这可能会导致您所描述的锁定。使用WMI或perfmon计数器检查主机的发布和传递限制状态,如果是这种情况,则需要开始长期调整服务器、主机和业务流程,以避免/限制限制的影响。BTS主机节流对于WCF等同步接收来说是致命的,因为响应消息可能会被显著延迟,导致客户端超时,并且一旦BTS能够处理响应,也会导致响应暂停。

最新更新