Biztalk Server 2009 - 如何修改MaxConcurrentSessions?

时间:2012-09-04 23:56:00

标签: wcf asp.net-3.5 biztalk biztalk-2009

我们在WCF tracelog中收到以下错误。

系统达到了限制设置的限制'MaxConcurrentSessions'。此限制的限制设置为10.可以通过修改serviceThrottle元素中的属性'maxConcurrentSessions'或通过修改行为ServiceThrottlingBehavior上的'MaxConcurrentSessions'属性来更改节流值

如果不在WCF适配器上使用自定义绑定,我们找不到修改“MaxConcurrentSessions”属性的好答案。

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

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

还有一点:工作一段时间,因为我们得到了负载,然后一切都锁定了

谢谢, 克里希纳。

1 个答案:

答案 0 :(得分:0)

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

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

您需要在接收位置的“行为”标签上手动添加serviceThrottling行为。来自MSDN

  

在ServiceThrottlingBehavior服务的任何元素之前   可以修改行为,必须先添加serviceThrottling   行为扩展到WCF-Custom * Transport的“行为”选项卡   属性对话框。将serviceThrottling添加到列表中   行为,选择WCF-Custom * Transport的“行为”选项卡   在“属性”对话框中,右键单击“行为”下的“ServiceBehavior”,   单击“添加扩展”,选择“serviceThrottling”,然后单击“确定”。然后   单击以选中下面的可用属性   ServiceThrottlingElement并将属性的值更改为   需要的。

您可能还需要同时增加maxConcurrentCallsmaxConcurrentInstances

.NET 4中的默认建议至少为16*Cores,尽管以上链接建议maxConcurrentCalls使用> = 200。

也就是说,您可能会发现BizTalk 主机限制在持续一段时间的大量传入负载后启动,这可能会导致您所描述的感知锁定。使用WMI或perfmon counters检查主机的发布和交付限制状态,如果是这种情况,则需要在tuning服务器,主机和业务流程中开始长期运行以避免/限制节流的影响。 BTS主机限制对于像WCF这样的同步接收是致命的,因为响应消息可能会显着延迟,导致客户端超时,并且一旦BTS确实处理它们,也会导致响应被暂停。