APPC Session May Use Wrong Remote LU If Cancellation of Conversation Occurs (328289)



The information in this article applies to:

  • Microsoft SNA Server 4.0 SP4
  • Microsoft Host Integration Server 2000

This article was previously published under Q328289

SYMPTOMS

If an Advanced Program-to-Program Communication (APPC) Allocate fails and cancellation is performed by the APPC application, a later session request may use a Remote APPC LU other than the one that is requested by the application.

NOTE: This also applies to Common Programming Interface for Communications (CPI-C) applications that cancel an outstanding CMALLC() verb.

For additional information about other symptoms that might occur because of the problem described here, click the following article number to view the article in the Microsoft Knowledge Base:

814477 CPI-C Application May Stop Responding After a Network Outage

CAUSE

If you cancel an outstanding Allocate request, this causes a WinAPPCCancelConversation call, which cleans up the conversation. However, the Open LU62 Request message that is associated with the ALLOCATE cancellation is not cleared from the queue of outstanding requests. This existing Open LU62 Request may be reused by a later APPC or CPI-C session request, which causes the problem described earlier.

RESOLUTION

SNA Server 4.0

A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Only apply it to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Microsoft SNA Server version 4.0 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix has the file attributes (or later) 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 tool in Control Panel.
Windows NT:

   Date         Time   Version        Size     File name
   -----------------------------------------------------------
   13-Aug-2002  08:39  4.0.0.606      217,040  Wappc32.dll

Windows 95, Windows 98, Windows Millennium Edition:

   Date         Time   Version        Size     File name
   -----------------------------------------------------------
   13-Aug-2002  08:39  4.0.0.606      93,952   Wappc32.dll
				

NOTE: Because of file dependencies, the most recent fix that contains the preceding files may also contain additional files.

Host Integration Server 2000

A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Only apply it to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Microsoft Host Integration Server 2000 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The P1 version of this fix has the file attributes (or later) 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 tool in Control Panel.
Administrator Client and HIS 2000 Server:

   Date         Time   Version        Size     File name
   -----------------------------------------------------------
   09-Aug-2002  13:42  5.0.0.900      221,456  Wappc32.dll


End User Client:

   Date         Time   Version        Size     File name
   -----------------------------------------------------------
   09-Aug-2002  13:42  5.0.0.900      155,920  Wappc32.dll
				

NOTE: Because of file dependencies, the most recent fix that contains the preceding files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in Microsoft SNA Server versions 4.0 SP4, and Host Integration Server 2000.

MORE INFORMATION

When the APPC Library does resource location, a copy of the Open LU62 Request message that the APPC Library sends to an SNA Server service is stored in a queue. When the APPC Library receives an Open LU62 Response, the APPC Library searches through its queue for the original message, matching on the i-value (for example, 00000020->03020000 OPEN LU62 REQUEST). The i-value minus 1 corresponds to the control block index for the APPC conversation, and therefore, uniquely identifies a conversation at any particular moment.

The problem that is described here is triggered by an Open LU62 Request that does not complete. The application has a timer that issues a CMCANC() if a CMALLC() does not complete in 5 seconds. The CMCANC() maps to a WinAPPCCancelConversation call, which cleans up the APPC conversation. However, WinAPPCCancelConversation does not clear the queue of outstanding Open LU62 Requests. In this case, the copy of the Open LU62 Request message is spuriously left on the queue.

Sometime later, the control block is reused to set up another APPC conversation. During the resource location, when the final try comes back negative, instead of failing the ALLOCATE, the Open LU62 -RSP spuriously matches the old message from the original Open LU62 Request, which did not complete. At this point, the APPC Library retries the Open LU62 Request, this time with the original (and wrong) Remote APPC LU. This occurred on several occasions in the SNA traces that captured the problem. The tangible problem was identified where the Open LU62 Request (and its associated ALLOCATE) actually completed, but with entirely the wrong APPC triplet (Local APPC LU\Remote APPC LU\Mode).

You can fix this problem if you clear out any Open LU62 Requests in the queue for a particular conversation/i-value when WinAPPCCancelConversation is called.

Modification Type:MinorLast Reviewed:10/11/2005
Keywords:kbHotfixServer kbQFE kbBug kbfix kbQFE KB328289 kbAudDeveloper