KB#00557-Error 72, TCB(10)=-10054, error getting packet size (Winsock error 10038)
Error 72, TCB(10)=-10054, error getting packet size (Winsock error 10038)
This error has been observed when the Windows NT Server on which the NTDS was running on began to run low on resources. The Client often reports this as error 72, TCB(10)=-10054 and the logfile indicates an error getting packet size, 10038.
There are four scenarios in which this error has been observed:
1) Windows NT 4.0 doesn't have Service Pack 3 installed. Upgrade to Service Pack 3 for Windows NT.
2) The Windows NT Server is running other applications which are utilizing its resources. The solution in this case is to limit the number of other applications running on the server.
3) The Visual PRO/5 code has not been optimized to work with the Data Server. More specifically, the program constantly (several times per second per session) disconnects and reconnects to the Data Server. As an overview, the very first time a program opens a file via the Data Server, it has some overhead of establishing a communications channel with the server. Subsequent file opens utilize this same channel, so those opens are very fast. However, many application have been written to include the 'BEGIN' verb at the start of each program. This will cause all open channels to be closed, effectively shutting down the communications channel between the Visual PRO/5 program and the Data Server. The next time the program opens a file, it has to reestablish the communications. This has the overall effect of working the Data Server and the Windows NT Server very hard--the constant disconnects and reconnects can stress the Windows NT Server and cause it to run low on resources. To rectify this, a channel must be open to the Data Server at all times. The easiest way to do this is:
a) In the startup, open a file via the Data Server on channel 3200
b) Removed BEGIN statements, and replace with a CLEAR and a call to a public program (CLEARFILE in this example:
10 CLEAR;CALL "CLEARFILE"
CLEARFILE looks like this:
0010 REM "CLEARFILE - Close ALL channels except 3200"
0040 IF SHOWIT<>0 AND SHOWIT<>3200 CLOSE(SHOWIT)
0050 IF A$>0 GOTO 30
If the BEGINS remain in the code, Windows may eventually get overloaded trying to recycle the TCP ports. Whenever a client rapidly connects and disconnects to the Data Server, a new TCP port has to be allocated for the converstation. If several of these connections are terminated quickly, it can take a while for the machine to recycle these ports. To see if this is happening, run 'netstat' from DOS. If you see several entries with a TIME_WAIT status as illustrated below, then that indicates that the machine is having difficulting recycling the ports quickly enough.
Sample output from netstat:
TCP buble:1312 buble.basis.com:pro5srv TIME_WAIT
TCP buble:1314 buble.basis.com:pro5srv TIME_WAIT
TCP buble:1316 buble.basis.com:pro5srv TIME_WAIT
TCP buble:1318 buble.basis.com:pro5srv TIME_WAIT
4) This error has also been seen under WindowsNT when the TCP/IP stack was not properly set up. The customer could ping by both name and by address from both the client and the server. The data server log indicated an Error getting packet size..TCB(10)=-10054. Under TCP/IP Protocol properties, Wins Configuration, the customer had an incorrect address pointing to the wrong place. Correcting this address solved the problem.
Last Modified: 05/28/1998 Product: PRO/5 Data Server Operating System: Windows NTError Number: 72 OS Error: 10038
BASIS structures five components of their technology into the BBx Generations.