BUG: Long running COMTI transactions are unsuccessful and you receive an event 102 (2150) error message (823183)
The information in this article applies to:
- Microsoft Host Integration Server 2000
- Microsoft Host Integration Server 2000 SP1
- Microsoft SNA Server 4.0
- Microsoft SNA Server 4.0 SP1
- Microsoft SNA Server 4.0 SP2
- Microsoft SNA Server 4.0 SP3
- Microsoft SNA Server 4.0 SP4
SYMPTOMSCOM Transaction Integer (COMTI) transactions that take longer than four minutes to complete may not succeed, and you may receive the following event message: Event ID: 102
Source: COMTI
Description: (102) COM Transaction Integrator reported the following exception to the client:
Component: Component Name Method: Method Name Exception description:
(2150) The TCP transport received a socket error while attempting to receive user data. Error description: Connection reset by peer, expected length: 0. IP Address: TCP/IP Address, port: Port Number, transid: TransID. CAUSETCP/IP socket connections in a FIN_WAIT_2 state are closed by the TCP/IP stack when the TcpTimedWaitDelay timer expires. RESOLUTIONTo resolve this problem, apply the update that is described in the following Microsoft Knowledge Base article: 813056 The TCP/IP stack does not permit a connection to remain in a FINWAIT-2 status for longer than 300 seconds
When you apply the update, configure the TcpFinWait2Delay registry entry with a value that is greater than the largest COMTI TCP/IP remote environment (RE) timeout value that COMTI uses. STATUS
Microsoft has confirmed that this is a problem in the products that are listed in Knowledge Base article 813056 (that are mentioned in the "Resolution" section).
MORE INFORMATIONWhen COMTI has completed sending data, COMTI calls the shutdown(socket handle, SD_SEND) function to indicate that COMTI will not send any more data over this socket. The shutdown() function causes the TCP/IP stack to send a FIN request to the remote system. At this point, the TCP/IP socket goes into a FIN_WAIT_1 state. When the remote system acknowledges the receipt of the FIN request by sending an acknowledgement (ACK), the TCP/IP socket goes into a FIN_WAIT_2 state.
The TCP/IP stack in Windows was designed to time out sockets according to the TcpTimedWaitDelay timer (just like the stack does for sockets in the TIME_WAIT state). If the COMTI transaction takes longer than the seconds that are in the TcpTimedWaitDelay timer (the default value is 240 seconds), the transaction does not complete because the TCP/IP stack closes the socket connection before the remote application can return the data that COMTI requested.
An update to the TCP/IP stack is available. The update adds a separate timer for socket connections in a FIN_WAIT_2 state.
Note This also applies to any Windows Sockets application that uses shutdown() to initiate a graceful shutdown of a socket connection.REFERENCESFor more information about how to shut down socket connections, visit the following Web site:
For additional information about the concepts that are described earlier, click the following article numbers to view the articles in the Microsoft Knowledge Base:
120642
TCP/IP and NBT configuration parameters for Windows 2000 or Windows NT
314053 TCP/IP and NBT configuration parameters for Windows XP
137984 TCP connection states and Netstat output
Modification Type: | Minor | Last Reviewed: | 3/11/2005 |
---|
Keywords: | kbprb kbfix kbbug KB823183 kbAudDeveloper |
---|
|