BUG: Direct SPX Connection May Fail from Win16 ClientID: Q128618
|
A Windows 16-bit (Win16) IPX/SPX client connection to SQL Server may fail
if the direct connection is used (as opposed to using bindery service), and
the network segment number (for example, the external IPX network number)
is larger than 0x7FFF.
When you use direct connections through hardcoding the IPX address, socket
number, and network number, DBMSSPX3.DLL converts the network number
incorrectly if the network number is larger than 0x7FFF. This causes the
connection to SQL Server to fail due to incorrect network routing.
However, this should not cause major problems in actual applications
because a Microsoft Windows version 3.1 client application typically uses
bindery service when connecting to SQL Server, and large network numbers
are not commonly used.
DBMSSPX3.DLL converts the network number specified in the connection
string incorrectly.
If the network number is between 0x8000 and 0xFFFF, the Network Library
(Net-Library) DLL will prefix FFFF to the specified network number. For
example, if the specified number is 0x89AB, the client will actually try to
connect to the network with network number of 0xFFFF89AB.
If the network number is larger than 0xFFFF, the Net-Library will ignore
all but the last two bytes. For example, if the specified network number is
0x12345, it will truncate the first digit, and only use 0x2345 as the
network number.
Use bindery service for IPX address resolution instead of hardcoding the address in the connection string. If direct connection is necessary, use a network segment number smaller than 0x8000.
Microsoft has confirmed this to be a problem in Microsoft SQL Server version 4.21a. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
Additional query words: direct connect hardcoding address dbmsspx3 net-lib segment Windows NT
Keywords : kbenv kbbug4.21a SSrvWinNT
Version : 4.21a
Platform : WINDOWS
Issue type :
Last Reviewed: April 19, 1999