Microsoft KB Archive/320370

= FIX: An HTTP Protocol Violation Occurs When BizTalk Server Communicates with an HTTP 1.0 Server =

Article ID: 320370

Article Last Modified on 11/15/2007

-

APPLIES TO


 * Microsoft BizTalk Server 2002 Standard Edition
 * Microsoft BizTalk Server 2000 Standard Edition

-



This article was previously published under Q320370



SYMPTOMS
When you configure BizTalk Server to communicate to an HTTP 1.0 server, the BizTalk HTTP client does not honor the protocol requirements that are specified in the published HTTP RFCs with regard to persistent connections behavior.

Specifically, the BizTalk HTTP client attempts to reuse a connection even though the HTTP 1.0 server has not indicated that it supports this option by including the Connection: Keep-Alive header in its initial response.

If simultaneous POST requests are transmitted to the HTTP 1.0 Web server, to be in accordance with the HTTP RFCs, after the first request is processed, the Web server sets the FIN flag on the TCP/IP connection to request closure.

The BizTalk HTTP client does not correctly recognize that the connection should be considered closed and attempts to send another POST request on the same connection.

The semantics of BizTalk Messaging determine that requests may be placed in the Retry Queue and that the underlying TCP/IP transport protocol enter a TCP reset exchange that occurs between the BizTalk client and HTTP 1.0 Web server.

The following text is an example of the initial messages headers that are exchanged, which should determine that there are no persistent connections to be used:

BTS Client Request

POST /a/b/c HTTP/1.1

Host: nnn.nnn.nnn.nnn:pppp

Connection: Keep-Alive

Content-Length: nnn

Content-Type: text/plain; charset=&quot;utf-8&quot; Accept: */*....

HTTP 1.0 Server Response

HTTP/1.0 200 OK

Content-Type: text/xml

Servlet-Engine: ...

In extreme situations, transmission of BizTalk messages may fail and result in messages being placed in the Suspended Queue.



CAUSE
Performance optimizations that were made in BizTalk Server implement a cache for TCP connections, which inadvertently resulted in connections being inappropriately reused when the overlying transport protocol was HTTP 1.0.



Service Pack Information
To resolve this problem, obtain the latest service pack for Microsoft BizTalk Server 2002. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

815781 How to Obtain the Latest BizTalk Server 2002 Service Pack

Hotfix Information
A supported hotfix is now available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next BizTalk Server 2002 service pack that contains this hotfix.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft BizTalk Server 2002 Service Pack 1.

