You are running a Windows Server 2003-based computer.
The TN3270 Server service that is included with Microsoft Host Integration Server is running on this computer.
A client user's TN3270 session is idle for longer than the TCP/IP keepalive time-out period.
In this scenario, the TN3270 session is disconnected by the TN3270 Server, and the following event is logged in the Application log:
Event ID: 902Source: TN3270 ServerDescription:Logic error in module CompletionRoutineRead identified by: CompletionRoutineErrorNotZero EXPLANATION An unexpected logic error has occurred.
Note This problem typically occurs when the idle time-out period for TN3270 Server is set to infinite. In this situation, an idle TN3270 session never times out. Therefore, it becomes more likely that the underlying TCP/IP keepalive time-out period will expire when TN3270 sessions are left idle for long periods.
When a TN3270 session is disconnected because of inactivity, the TN3270 server expects to receive one of the following error messages when the TN3270 server calls the GetQueuedCompletionStatus function:
ERROR_NETNAME_DELETED (error 64)
ERROR_UNEXP_NET_ERR (error 59)
ERROR_CONNECTION_ABORTED (error 1236)
The check for ERROR_CONNECTION_ABORTED was added to resolve the issue that is described in the following Microsoft Knowledge Base article:
908232 FIX: TN3270 emulators may not reconnect automatically if the session ends because of inactivity when Host Integration Server 2004 is running on Windows Server 2003
When TN3270 Server is running on a Windows Server 2003-based computer, it receives the following error message in response to the GetQueuedCompletionStatus function call when the TN3270 session times out:
ERROR_SEM_TIMEOUT (error 121)
TN3270 Server does not expect to receive error 121 when the call to the GetQueuedCompletionStatus function returns. Therefore, TN3270 Server logs an event 902 error.
Host Integration Server 2004
There is currently no hotfix available for Microsoft Host Integration Server 2004.
Host Integration Server 2004 Service Pack 1 (SP1)
A supported hotfix is 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 software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if 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. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
To apply this hotfix, you must have Host Integration Server 2004 Service Pack 1 (SP1) installed.
You do not have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other hotfixes.
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Note Because of file dependencies, the most recent hotfix that contains these files may also contain additional files.
Host Integration Server 2006
To resolve this problem, obtain the latest service pack for Host Integration Server 2006. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
979497 How to obtain the latest Host Integration Server 2006 service pack
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This hotfix enables TN3270 Server to search for the "ERROR_SEM_TIMEOUT" error that the GetQueuedCompletionStatus function returns when TN3270 Server is running on a Windows Server 2003-based system.
The following is an excerpt of a TN3270 Server internal trace (Tn3int1.atf) that was captured when the problem occurred. This trace was captured by using the SNA Trace utility (Snatrace.exe).
The default TCP/IP keepalive time-out period is set to two hours (7,200,000 milliseconds). However, you can change this time-out period by adding the KeepAliveTime registry parameter, as described on the following Microsoft Web site: