Next Topic

Previous Topic

Home

Book Contents

Book Index

Icon Text - Topic Parent

How to select the correct MS SQL network libraries for MonTel on both the Server and Client.

Executive summary:

The easiest and best way of changing the Client Net-Library is to use cliconfg.exe a tool supplied by microsoft (usually as part of MDAC). This is located in the system32 folder of the Windows directory. The best setting is TCP/IP. This allows fast connections on the most popular network protocol, and allows any number of connections to an Server. (Named pipes limits the connections to 10 on Win2K, WinNT and XP professional.)

Recent version of MonTel include cliconfg.exe in the MonTel Icons in the programs menu from the start button.

Changing the Client Net-Library

The default client Net-Library on Windows NT based computers is "Named Pipes". For a number of reasons (for example http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B283860 or more likely Occasionally MonTel clients fail to connect to MSDE or SQL Server with Error 71) the TCP/IP library might be the preferred choice. See below for an explanation of Net-Libraries

Normally you would need to change the settings on each computer, however, MonTel creates a DSN-less connection, by setting the parameters for a connection directly. So therefore you may not need to change the any settings on the computer for MonTel to work, since you can select the client Library by setting the PABX.INI file to DatabaseNetworkDLL = Dbmssocn. If you select Dbmssocn, and you are using a non-standard port you will need to also set DatabaseNetworkAddress. Otherwise DatabaseNetworkAddress can be left blank.

The client libraries are:

Dbmssocn TCP/IP sockets Net Library
Dbnmpntw Named pipes
Dbmsrpcn Multiprotocol
Dbmsspxn Novell SPX/IPX
Dbmsvinn Banyan Vines
Dbmsdecn DECNet
Dbmsadsn AppleTalk

DBmssocn is a DLL installed by MDAC, so it should be present. If it is not, re-install MDAC on that computer.

What is a Net-Library.

According to Microsoft their SQL Serves use "... a dynamic-link library (DLL) called a to communicate with a particular network protocol. A matching pair of Net-Libraries must be active on client and server computers to support the desired network protocol. For example, to enable a client application to communicate with a specific instance of SQL Server across TCP/IP, the client TCP/IP Sockets Net-Library (DBNETLIB.dll) must be configured to connect to that server on the client computer, and the server TCP/IP Sockets Net-Library (SSNETLIB.dll) must be listening on the server computer." (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_1_client_8uwj.asp)

There are a number of different libraries, but the most commonly used and the Server defaults are TCP/IP Sockets, Named Pipes or Multi-protocol (a sort of multiple choice) on NT based machines (Win2K, XP, NT) and TCP/IP Sockets or Shared Memory on Win9x machines (Win95,Win98, WinME).

All of these are installed by MDAC on a client machine. The defaults for the client are Named Pipes on WinNT and TCP/IP Sockets on Win9x. Which connection is actually used can be a little more arbitrary. One guess is that the library chosen depends on the last application that created as DSN as much as anything else. But see also the Microsoft web site for http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B238091 for a bug that was fixed in SP3 for MS SQL 7.0 (and MSDE).

A DSN is a data source name (DSN) stores information about a data connection in the Windows® Registry of the computer on which the DSN was created for a System DSN, and in a file for a file DSN. Otherwise on NT based machines it seems to default to named pipes.

MonTel however creates a DSN-less connection, by setting the parameters for a connection directly. So therefore you may not need to change the any settings on the computer for MonTel to work, since you can select the client Library by setting the PABX.INI file to DatabaseNetworkDLL = Dbmssocn

Problems selecting the Client Net-Library

Some time the connection fails because the local computer still insists on using a different Net-Library. This might be because other applications have changed system DSNs, or because of a known bug in MDAC. In this case you might need to change the Library manually. There are at least 3 ways to do this.

You can also set the networking library for a DSN by using the Data Sources (ODBC) option in Control Panel. Once you set a library for one connection, it will become the default library for all subsequent connections, as well as for any DSN-less connections that your application may use. It is possible that settings or changes made here may conflict with MonTel, though it also provides a useful way of making sure that the SQL Server connection is valid.

Secondly, you can use the Microsoft tool cliconfg.exe to change the default client library to TCP/IP, and add a Server Allias to enforce the connection. This requires that you know the name of the Server hosting the SQL Server or MSDE and the port, if that has been changed on the server. The default for SQL Server 7.0 is 1433. Other client libraries can be selected in the same way.

Thirdly, you can change the registry setting. Details of this can be found on the Microsoft web site HOWTO: Change SQL Server Default Network Library Without Using Client Network Utility http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B250550.

The Server Net-Library

A matching pair of SQL Server must be installed on a client and server computer.

If you have installed SQL Server and want to change your server Net-Libraries, start SQL Server Network Utility. This application allows you to activate, deactivate, and reconfigure server Net-Libraries to listen for clients on their corresponding network protocols.

It does not seem possible to delete Named pipes with this tool. Removing the Mutiprotocol may help force connections to use TCP/IP, or to other libraries that you have specified. Obviously the client computers must have the matching Net-Libraries. There are limitations as to which libraries can be run on Win9x servers. However, for reliability and robustness, we strongly recommend that MSDE or SQL Server is run on Windows 2000 or later computers.

------------------------------