Using the SQL Server Bond on non-OS/2 Platforms
Published By | Date | Version | Knowledge Level | Keywords |
---|---|---|---|---|
Revelation Technologies | 19 MAR 1991 | 2.1X | INTERMEDIATE | NETSERVERENUM, LANMANAGER, LANMAN, SYBASE, SQLSERVER |
The SQL Server Bond contains a program called NETSERVERENUM, which returns known SQL Servers on your network (see the SQL Server Environmental Bond documentation for more information). NETSERVERENUM is part of the Microsoft Lan Manager Library, and can lead to problems when a SQL Server or Sybase Server is not run on a Lan Manager network. Specifically, the following problems have been reported:
- The NETSERVERENUM routine causes problems when the SQL Server is used in conjunction with Novell's OS/2 Requestor version 1.2 in a Novell network configuration. If a dbclose() dblib call (analogous to the MSSQL_C routine with an MSSQL.CLOSE$ calling code) precedes a call to NETSERVERENUM, then the client machine will hang. Typical symptoms of this problem are sporadic hangs of your client machine without any returned errors. Novell and Microsoft have both confirmed this error. A potential post 1.2 release of the OS/2 requestor from Novell might fix this problem.
- When Sybase servers are used on non OS/2 platforms such as Sun and DEC VAX running TCP/IP or DECNet, the NETSERVERENUM call is not supported and produce errors. The errors prevent you from performing additional work with the bond.
- To solve these problems you can provide a stub for NETSERVERENUM. Figure 1 shows a sample NETSERVERENUM stub routine.
Once this routine is written, compile it and copy it into the VERBS file overwriting the old $NETSERVERENUM. Make sure you backup the old $NETSERVERENUM routine in the VERBS file.
Examples
Figure 1
SUBROUTINE NETSERVERENUM(ERROR, SERVERS) * Stub version of NETSERVERENUM used to * work with Sybase servers on non-OS/2 platforms * or for SQL Servers running under a Novell network/OS/2 * requestor environment. SERVERS = "" ERROR = 0 RETURN