INF: Common Connectivity Errors on Novell Networks

Last reviewed: May 5, 1997
Article ID: Q155881

The information in this article applies to:
  • Microsoft SQL Server, versions 4.21a, 6.0 and 6.5

SUMMARY

The following article is intended for audiences who are making connections to SQL Server implemented on a Novell Netware network. The issues contained in this article focus primarily on the SPX sockets network libraries Dbmsspx3.dll and Dbmsspxn.dll.

MORE INFORMATION

NOTE: When you encounter connectivity problems in Netware, it is always

      beneficial to make sure that you are using the latest client software
      available from Novell.

When you troubleshoot connections to SQL Server, the best tool to use is ISQL/w. This tool will provide informative native error codes relating to the specific network library that is being used. Normally a connectivity error will generate a GUI error message in ISQL/w. At the top of the message box will be the following:

    Error: 10004 Sev: 9 State: 0
    Unable to connect. SQL Server is unavailable or does not exist.
    Consult your documentation for more information.

Beneath this message will be a stop sign. Below the stop sign will be an OS error. Record this value. To the right of the OS error will be the function call being used at the time. Usually we will see the application calling function and the network library specific function within that. For example:

    OS Error: 252            Connect(ReadPropertyValue())

Here are several of the most common errors that occur when you connect to a SQL server on a Novell network, a brief description, and some possible solutions:

Error:

OS Error: 11      AttachtoFileServer()

Description:

This message is most commonly seen from 32-bit NT clients that are using Novell name resolution to connect to SQL Server. If a direct connect is attempted, OS error 10047 might occur. Error 10047 is a Windows Sockets error that means that a request for a socket not supported by the protocol was made.

Possible solutions:

The NWLink IPX/SPX protocol is not bound to the NT workstation service. Remove and re-install the NWLink protocol.

For additional information about making direct connections to SQL Server, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q138716
   TITLE     : INF: How to Debug Direct Connections to SQL Srv over IPX/SPX

Error:

OS Error: 252            Connect(ReadPropertyValue())

Description:

ReadPropertyValue() is the Netware API call used to scan the bindery on a Netware server for a specific object. 252 means that no such object exists.

In order to provide name resolution on a Novell network, SQL server broadcasts a Service Advertisement Protocol (SAP) message every 55 seconds that contains its service name (configurable in the SQL Server Setup program) and its unique network address. This information is stored in the bindery of every Netware server that hears the broadcast.

16-bit SQL clients scan the bindery on their preferred server for this information. 32-bit clients broadcast a SAP requesting a Netware server and every server that hears the request responds. The client will connect to the first server to respond and scan the bindery on that device.

If the broadcast does not make it to the Netware server being used by the client, this error will be raised.

Possible solutions:

  1. SQL Server is not started, or is not listening on IPX/SPX. Use the SQL Server Setup utility to check network support. Verify that the NWLink IPX/SPX option is selected. Then use the SQL error log or the NT Event Viewer to examine the Application error log to check for a successful start on IPX/SPX. During the startup of SQL Server, you should see the message:

          Using SSMSSP60.DLL to listen on "service name"
    

    where "service name" is the Bindery Service name you have configured for SQL server. This name, by default, is the same as the NT computer name but it is configurable.

  2. The Netware server that the client is connecting to is not receiving the SAP broadcast from SQL Server. The most common reason for this problem is that a router between the SQL Server and the Novell Server is filtering SAPs. The SAP id for SQL server is type F503. You should be sure that your routers provide SAP forwarding for this type.

  3. If the client is a 32-bit client, it might have attached to a remote server or a device that looks like a server but has no bindery.

When the 32-bit client broadcasts, it requests all Netware servers on the network and all servers respond. In addition to this, all routers respond with the servers listed in their Router Information Table. If the router is the first device to respond, the client will attach to the first server in the list. This server might be a remote server on the far side of a WAN and therefore not receiving the SQL SAP (see number 2 above).

The first device to respond might be a non server. There are many devices available on the market today that provide CD-ROM services or print services that, for ease of installation, are designed to look like Netware servers to the rest of the network. Some of these devices might not maintain a bindery and therefore cannot provide name resolution. If your 32- bit client connects to one of these devices, a ReadPropertyValue 252 error will be raised.

You should use a protocol analyzer to determine the device that your 32-bit client is connecting to and then you can determine why the SAP is not there.

For additional information, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q130744
   TITLE     : PRB: Connection Problems from NT Clients via IPX/SPX

Error:

OS Error: 0      SPXInitialize()

Description:

Any application that uses SPX must first initialize SPX using the SPXInitialize() function. A return code of 0 means that SPX is not installed on this node. The majority of communications on a Novell network takes place using IPX or NCP; the SPX protocol is rarely used. For this reason, Netware provided the capability of optionally not loading SPX at the time of startup. This will save conventional memory on the client. In order to prevent SPX from loading when running Netware, use the /a switch when you start ipxodi.com.

Possible solutions:

  1. If in the course of starting your Netware software you are executing IPXODI /a, you should remove the /a switch in order to allow SPX services to run.
2. If you verify that IPXODI is not starting with the /a switch, but you
   are still getting the SPXInitialize error 0, try connecting to SQL
   Server from DOS. Load the SPX Terminate and Stay Resident program
   Dbmsspx.exe and run* isql -S (servername) -U (userid) -P (password). If
   this connection fails with the same error, SPX is not available in DOS
   or Windows and you should contact your primary support provider for
   Netware.

If this connection succeeds, then you have verified that SPX services are available in DOS but not in Windows. This might be a problem with old or incompatible drivers in Windows. Make sure you have the latest available Windows components for Netware installed on the client.

Error:

OS Error: 254      IPXOpenSocket()

Description:

Generally seen on 16-bit clients.

The Windows-based client Net-Libraries use one IPX socket per connection and one to three SPX sessions per connection.

This error means that the total number of available sockets have already been used.

Possible solutions:

To achieve the maximum number of connections, set the IPX Sockets parameter to 32 and the SPX Connections parameter to 96 in the Novell Net.cfg file.

Error:

OS Error: 237      SPXEstablishConnection()

Description:

Generally seen on 16-bit clients.

SPXEstablishConnection means SPX_NO_ANSWER_FROM_TARGET. This can occur due to hardware failure or if the client application uses SPXAbortConnection. If a client attempts a connection with SQL Server and the server is unresponsive during this function then error 237 can be raised.

Possible solutions:

Using the wrong frame type can cause this problem to occur. The frame type for Novell clients are generally set in the Net.cfg file. This file usually resides in the same subdirectory as the rest of the Netware client drivers (Lsl.com, Ipxodi.com, and so forth).

On the NT server where SQL Server resides, go to a command prompt and type "IPXROUTE CONFIG". Note the frame type that the server is using and set that value in the Net.cfg file.

Also, if the client is Windows for Workgroups, the frame type can also be set for the IPX/SPX Compatible transport in the Network setup for the client.

It has been observed that if the Net.cfg file has the proper frame type set and the IPX/SPX Compatible Transport does not, this error can occur.

Error:

OS Error: 250      SPXEstablishConnection()

Description:

Indicates a problem with hardware.

Possible solutions:

Try using a newer version of the driver for your network card and loading the latest DOS/Windows client from Novell.

Error:

OS Error: 253      SPXListenforSequencedPacket()

Description:

Generally seen on 16-bit ODBC clients on SQL Server 6.0.

A packet overflow has occurred.

Possible solutions:

For additional information, please see the following article in the Microsoft Knowledge Base:

  ARTICLE-ID: Q135312
  TITLE     : FIX: ODBC 6.0 Driver Sometimes Cannot Get Results w/ dbmsspx3

Error:

OS Error: 237      SPXListenforSequencedPacket()

Description:

SPXListenforSequencedPacket is used for receiving data to the SQL client. This is an asynchronous function that delivers an ECB address and the buffer space it identifies to SPX for the purpose of receiving a sequenced packet.

Error 237 translates to "SPX Connection Failed".

Possible solutions:

The most common reasons for this error are unstable network platforms or out-of-date files.

If this error occurs, the first step in trouble shooting is to obtain the latest DOS and Windows drivers from Novell and install them.

If this does not resolve the issue, make sure you are on the latest service pack for the NT server platform you are running.

If an application sends and receives continuous streams of data, and the network is saturated or having excessive traffic collisions, try to isolate traffic to a minimum to see if the situation subsides.

In some cases, 16-bit ODBC applications that use Access's Jet data engine can receive this error. If this is the case, make sure you are using the latest version of Jet (available through service packs). In addition, you can try configuring the Jet engine to use synchronous connections by editing the application's INI file or the Access INI file (Msacc20.ini). Create a section as follows if it does not already exits and enter the string shown:

   [ODBC]
   DisableAsync=1

Make sure the INI file is in the Windows\System directory. This will keep the Jet engine from executing continuous ConnectionCheckforData commands that can sometimes cause timing problems with the Dbmsspx3.dll.

For additional information, please see the following article(s) in the Microsoft Knowledge Base:

   ARTICLE-ID: Q122927
   TITLE     : WX1124: Microsoft Access Version 2.0 Service Pack

Error:

OS Error: 238      SPXSendSequencedPacket()

Description:

SPXSendSequencedPacket is used for sending data to the SQL Server. This function delivers a connection ID and an ECB address to SPX for the purpose of sending a sequenced packet.

Error 238 translates to "Invalid Connection".

Possible solutions:

The most common reasons for this error are unstable network platforms or out-of-date files.

If this error occurs, the first step in trouble shooting is to obtain the latest DOS and Windows drivers from Novell and install them.

If this does not resolve the issue, make sure you are on the latest service pack for the NT server platform you are running.

If an application sends and receives continuous streams of data, and the network is saturated or having excessive traffic collisions, try to isolate traffic to a minimum to see if the situation subsides.

In some cases, 16-bit ODBC applications that use Access's Jet data engine can receive this error. If this is the case, make sure you are using the latest version of Jet (available through service packs). In addition, you can try configuring the Jet engine to use synchronous connections by editing the application's INI file or the Access INI file (Msacc20.ini). Create a section as follows if it does not already exits and enter the string shown:

   [ODBC]
   DisableAsync=1

Make sure the INI file is in the Windows\System directory. This will keep the Jet engine from executing continuous ConnectionCheckforData commands that can sometimes cause timing problems with the Dbmsspx3.dll.

For additional information, please see the following article(s) in the Microsoft Knowledge Base:

   ARTICLE-ID: Q122927
   TITLE     : WX1124: Microsoft Access Version 2.0 Service Pack


Additional query words: sql421a sql60 sql65 NIK
Keywords : SSrvGen SSrvNet_Lib
Version : 4.21a 6.0 6.5
Platform : WINDOWS


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.

Last reviewed: May 5, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.