BizTalk SOAP, HTTP, and HTTP-based WCF Adapters – How many Concurrent Connections are configured by default and how can we change this behavior

Posted: July 11, 2011 in BizTalk
Tags: , , , , ,

By default the SOAP, HTTP, and HTTP-based WCF adapters (and .NET in general) open only two concurrent HTTP connections from each BizTalk server to any specific destination server.

For example, if you have a SOAP send port sending messages to http://www.contoso.com/SomeWebService.asmx, then by default each BizTalk server will open only two concurrent HTTP connections to http://www.contoso.com, no matter how many messages need to be sent.

This setting conforms to the IETF RFC for the HTTP 1.1 specification, and although it is suitable for user scenarios it is not optimized for high throughput.

Incresing the Number of Concurrent Connnections

To increase the number of concurrent connections, you can modify the entry in the BizTalk Server configuration file, BTSNTSvc.exe.config (or BTSNTSvc64.exe.config for 64-bit hosts), on each BizTalk server. You can increase this for the specific servers being called.

The following is an example of the configuration for the maximum connections property:

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

In this sample we are saying that:

  • The endpoint contoso is configured with 20 concurrent connections
  • The endpoint northwing is configured with 2 concurrent connections
  • And the remaining are configured with 10 concurrent connections (change the default value)

Note:

Do not increase the value for the maxconnection parameter to such a large value that the Web server being called is overwhelmed with HTTP connections. Perform stress testing by sending requests to each destination Web server to determine a value for maxconnection that will provide good without overwhelming the target Web servers.

The default value for the “maxconnnection” property is 2, the maximum value that can be set for the “maxconnection” property for all URIs is 20.

Other considerations:

The “maxconnnection” property has no effect on the connection limit for making calls to local web services. Therefore, local web services always tend to give preference to the requests that come from the local computer over requests that come from other machines. This degrades the throughput of the web service for remote clients.

If the local web services are not making calls to any external systems and their web method processing time is considerably low, package them into a .NET library and call them from within your orchestrations. If those web services are calling external systems or take a considerable amount of processing time, move them off the BizTalk Server Group servers.

Related links

(this post is mainly for personal tracking, sorry for the duplicate content)

Tags: BizTalk | SOAP | HTTP | WCF | Adapters | Configurations

Comments
  1. Sandro,
    You might want to make it clear that Max number of outbound connections limit has nothing to do with BizTalk server, not WCF Adapters. It is a default limitation implemented of the .NET stack itself that affects any application that runs on top of .NET. That’s why configuration setting is in section, and it is a property of the ConnectionManagementElement class in the System.Net.Configuration namespace, http://msdn.microsoft.com/en-us/library/system.net.configuration.connectionmanagementelement.maxconnection(v=vs.110).aspx

    Andrew Slivker

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s