Microsoft KB Archive/168774
Article ID: 168774
Article Last Modified on 11/24/2004
- Microsoft SNA Server 3.0
- Microsoft SNA Server 3.0 Service Pack 4
- Microsoft SNA Server 4.0
This article was previously published under Q168774
When using IBM Personal Communications 3270 (PC/3270) for Windows NT v4.1 TN3270E emulator through the SNA Server TN3270 Server, the IBM TN3270 emulator session may fail unexpectedly with XPROG750, which may coincide with the following Windows NT application event logged by the SNA Server TN3270 Server:
This problem does not occur when configuring the SNA Server TN3270 Server to use "TN3270 Mode only". In addition, other TN3270E emulators do not exhibit this problem. For more information about the Event 306 error, see the TROUBLESHOOTING EVENT 306 ERRORS section below.
This problem exists with Windows 95 and Windows NT versions of IBM PC/3270 v4.1. A fix for this problem is available from IBM PC/3270 technical support under the following IBM APAR numbers:
Windows 95 version of IBM PC/3270 v4.1: IC17449
Windows NT version of IBM PC/3270 v4.1: IC18202
The IBM PC/3270 TN3270E emulator was not properly handling a NULL RU arriving on an LU-LU session from a host application. The following annotated SNA Server TN3270 internal trace illustrates the problem.
Host sends Request Definite Response (RQD) message with null RU:
>04/16 12:56:10.333 (+150 msecs) Event=TEV_DataFromSNAAsync Thread = 0x00000139 Session = 0x0018F248 Socket = 0x000005D8 VCB address=0x0018F41C verb_length=0x0044 verb=0x0052 (RUI) opcode=0x8003 (READ) sid=0x00010003 correlator=0x0018F248 post_handle=0x000005C0 prim_rc=LUA_OK sec_rc=LUA_SEC_RC_OK lu_norm lua_data_length=0x00000000 lua_message_type=0x01 (LUA_MESSAGE_TYPE_LU_DATA) TH Only efi=0 oadi=0 daf=FE oaf=01 snf=0003 RH REQ FMD fi=0 sdi=0 bci=1 eci=1 (Only) 03 80 80 dr1=1 dr2=0 ri=0 qri=0 pi=0 bbi=1 ebi=0 cdi=0 csi=0 edi=0 pdi=0
SNA Server TN3270E server sends this message to the TN3270E client. Note the TN3270E header:
data type = 00 (3270 data request) request flag = 00 response flag = 02 (always response) sequence number = 0001 IAC EOR = ff ef >04/16 12:56:10.333 (+ smidgen ) Event=TEV_TCPSendIssued Thread = 0x00000139 Session = 0x0018F248 Socket = 0x000005D8 Number of bytes = 7 TN3270E message = 0000 0200 02ff ef
At this point, the IBM PC/3270 emulator displays "XPROG750". If the user enters <3270 Reset> and attempts to send a new request on the session, the request is received by the TN3270E server:
>04/16 12:57:06.594 (+ smidgen ) Event=TEV_DataFromClient Thread = 0x00000139 Session = 0x0018F248 Socket = 0x000005D8 000000 0000 0000 037d 405a 5c5c 8183 98a4 8999 |.....' !..acquir| 000010 854b 6b86 9683 f9f8 f3f0 f56b 9996 a4a3 |e.,foc98305,rout| 000020 8599 ffef |er.. |
However, since the previous Definite Response request was never acknowledged by the IBM PC/3270 emulator, this new user request is ignored by the SNA Server TN3270E Server (as indicated by the "Ignore" below):
>04/16 12:57:06.594 (+ smidgen ) Event=TEV_CRTFirstInboundByte Thread = 0x00000139 Session = 0x0018F248 Socket = 0x000005D8 Ignore State = OPER InputState = IDLE OutputState = SNARESP Toggle = LU-LU LU State = RCV CanQueue = YES Bracket = INB DTActive
By configuring the SNA Server TN3270E Server to use "TN3270 mode only", this forces the negotiation of the TN3270 protocol when communicating with the IBM PC/3270 TN3270 emulator, rather than TN3270E. The problem does not occur with the IBM PC/3270 emulator when using TN3270 protocol.
Contact IBM PC/3270 technical support for a fix to IBM PC/3270, referring to the APAR numbers mentioned in the SUMMARY section above.
TROUBLESHOOTING EVENT 306 ERRORS
The TN3270 Server Event 306 message indicates that the TN3270 Server "ignored" a request from a TN3270/TN3270E client emulator. This can occur if:
- The TN3270E client has not acknowledged a previously sent request.
- The host has direction to send on the SNA session, so a new TN3270 user request cannot be issued.
To track down the exact cause of the Event 306 error, an SNA Server TN3270 Internal trace should be captured. This can be captured as follows:
If SNA Server 2.11 is being used:
- Start the TN3270 Service Admin program on the server.
- Choose the <Trace> option.
- Select the "Active" checkbox, and then <OK>.
- Capture the problem.
- Once captured, disable tracing by deselecting the "Active" checkbox and choosing <OK>.
- The traces can be found in the \TN3270\TRACES directory, called TN3_00.TRC (and increment through TN3_09.TRC).
If SNA Server 3.0 is being used:
- Start the SNATRACE program on the server.
- From the Trace Items folder, double-click on the "TN3270" server.
- Focus on the "TN3270 Internal Trace" folder and choose the checkbox for "TN3270 Internal Trace", and then the <Apply> option.
- Capture the problem.
- Once captured, disable tracing by selecting the "Clear All Traces" option from the Trace Items folder.
- The traces can be found in the \SNA\TRACES directory, called TN3_00.TRC (and increment through TN3_09.TRC).