DOCUMENT:Q162147 12-JUN-2001 [sna] TITLE :TN3270 Server Loses Client Session PRODUCT :Microsoft SNA Server PROD/VER:WINDOWS:2.0,2.1,2.11,2.11 SP1 OPER/SYS: KEYWORDS:kbnetwork ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft SNA Server, versions 2.0, 2.1, 2.11, 2.11 SP1 ------------------------------------------------------------------------------- SYMPTOMS ======== When you press the ENTER key repeatedly in the Attachmate EPC 6.1 TN3270 emulator, a TN3270/E session may be dropped. There may also be many other ways to manifest the underlying problem. See the CAUSE section of this article for trace symptoms. CAUSE ===== The problem has to do with direction (which half-session has permission to send data). A host may give the emulator permission to send by setting the change direction (CD) bit in the Request Header. It is up to the application to acknowledge this CD message before any emulator data flows to the host. However, a TN3270 or TN3270E emulator cannot tell whether the host has given it direction, and may send data out of order. In the failing case, by the time the data from the emulator reaches the TN3270 server, the host has in fact sent a CD on a Request Definite Response (RQD) message to the computer running SNA Server. The TN3270 server then forwards the message to the client, requesting a positive response. So, when the TN3270 Server gets the data from the emulator, it thinks that the emulator sent the data correctly, because it now has a direction to send. Therefore, it sends the data on to the computer running SNA Server, which rejects the data because it has not yet received a response to the CD message from the TN3270 Server. The following is the message from the host with the CD bit set: DLC ---------------------------------------------- 09:59:44.35 DLC 05160000->01020101 DLC DATA DLC DAF:05 OAF:01 ODAI:off Normal DLC RQD FMD BC EC DR1 CD DLC DLC ---- Header at address 00DA43B0, 1 elements ---- DLC 04050100 00002C00 05010018 0100BD00 <......,.........> DLC DLC ---- Element at address 0129AB70, start 10, end 12 ---- DLC 038020 <.. > FMI ---------------------------------------------- 09:59:44.35 FMI 01020202->0B1D0001 FMI DATA FMI ACK reqd Key:25 Seq:24 BCI ECI CDI CEI BBIUI FMI EBIUI FMI FMI ---- Header at address 00DA43B0, 1 elements ---- FMI 01050019 620E2C00 05010018 0100BD00 <....b.,.........> FMI FMI ---- Element at address 0129AB70, start 4, end 12 ---- FMI 2C000501 00180380 20 <,....... > FMI ---------------------------------------------- 09:59:44.35 FMI 0B1D0001->01020202 FMIST RSRC FMI Credit:1 FMI FMI ---- Header at address 00DA43B0, 0 elements ---- FMI 04050001 620E2C00 05010018 0100CF00 <....b.,.........> The following is the message sent from the client emulator: >10/24 09:59:44.365 (+ smidgen ) Event=TEV_DataToSNA Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 VCB address=0x00267FB8 verb_length=0x0044 verb=0x0052 (RUI) opcode=0x8004 (WRITE) sid=0x00000003 correlator=0x00267DA8 post_handle=0x000001EC prim_rc=LUA_OK sec_rc=LUA_SEC_RC_OK lu_norm lua_data_length=0x00000003 RH REQ FMD fi=0 sdi=0 bci=1 eci=1 (Only) 03 90 20 dr1=1 dr2=0 ri=1 qri=0 pi=0 bbi=0 ebi=0 cdi=1 csi=0 edi=0 pdi=0 000000 f8c37e *8C= * The following is where the TN3270 Server sends the client emulator message to the SNA Server Service: FMI ---------------------------------------------- 09:59:44.36 FMI 0B1D0001->01020202 FMI DATA FMI NO ACK reqd Key:1 Seq:24 BCI ECI CDI CEI FMI BBIUI EBIUI FMI FMI ---- Header at address 00DA43B0, 1 elements ---- FMI 00050001 620E2C00 05010018 0100CF00 <....b.,.........> FMI FMI ---- Element at address 0129AB70, start 4, end 15 ---- FMI 2C000000 00000390 20F8C37E <,....... 8C~ > FMI ---------------------------------------------- 09:59:44.36 FMI 01020202->0B1D0001 FMIST RSRC FMI Credit:1 FMI FMI ---- Header at address 00DA44B4, 0 elements ---- FMI 04050001 00002C00 05010018 0100CF00 <......,.........> The server rejects this incoming data from the client because the client does not have a direction to send. FMI ---------------------------------------------- 09:59:44.36 FMI 01020202->0B1D0001 FMIST NACK-2 FMI Msg key:1 Fail: NONCRIT Err1:200D Err2:0000 FMI FMI ---- Header at address 00DA43B0, 0 elements ---- FMI 01040001 6200200D 00000100 0100CF00 <....b. .........> >10/24 09:59:44.365 (+ smidgen ) Event=TEV_DataFromSNA Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 VCB address=0x00267FB8 verb in progress -- opcode=0x8004 (WRITE) >10/24 09:59:44.365 (+ smidgen ) Event=TEV_CRTInboundDataSent Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 State = OPER InputState = COLLECT OutputState = SNARESP Toggle = LU-LU LU State = SNDXMT CanQueue = NO Bracket = INB DTActive >10/24 09:59:44.375 (+ 10 msecs) Event=TEV_DataFromSNAAsync Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 VCB address=0x00267FB8 verb_length=0x0044 verb=0x0052 (RUI) opcode=0x8004 (WRITE) sid=0x00000003 correlator=0x00267DA8 post_handle=0x000001EC prim_rc=0x1400 (LUA_UNSUCCESSFUL) sec_rc=0x00000D20 (LUA_RSP_BEFORE_SENDING_REQ) lu_norm lua_data_length=0x00000003 RH REQ FMD fi=0 sdi=0 bci=1 eci=1 (Only) 03 90 20 dr1=1 dr2=0 ri=1 qri=0 pi=0 bbi=0 ebi=0 cdi=1 csi=0 edi=0 pdi=0 >10/24 09:59:44.375 (+ smidgen ) Event=TEV_DataToClient Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 NEG RSP Number of bytes = 8 >10/24 09:59:44.375 (+ smidgen ) Event=TEV_TCPSendIssued Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 Number of bytes = 8 000000 0200 0100 0000 ffef |........ | >10/24 09:59:44.385 (+ 10 msecs) Event=TEV_SessionTerminationScheduled Thread = 0x00000049 Session = 0x00267DA8 Socket = 0x000001D0 SNAError RESOLUTION ========== To resolve this problem, obtain the hotfix mentioned below. The fix involved changing the TN3270E server so that it does not let a TN3270E client send data to the host until it has sent to the host a response to any CD message it has received. Previously, the TN3270e server would let the TN3270E client send data once the TN3270 server had received a CD message from the host. STATUS ====== Microsoft has confirmed this to be a problem in SNA Server versions 2.0, 2.1, 2.11, and 2.11 Service Pack 1. This problem was corrected in the latest SNA Server version 2.11 U.S. Service Pack. For information on obtaining this Service Pack, query on the following word in the Microsoft Knowledge Base (without the spaces): S E R V P A C K Additional query words: prodsna SP1 RH ====================================================================== Keywords : kbnetwork Technology : kbAudDeveloper kbSNAServSearch kbSNAServ200 kbSNAServ211 kbSNAServ210 kbSNAServ211SP1 Version : WINDOWS:2.0,2.1,2.11,2.11 SP1 ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.