Next Topic

Previous Topic

Home

Book Contents

Book Index

Occasionally MonTel clients fail to connect to MSDE or SQL Server with Error 71

While this problem may have a number of potential solutions, essentially it comes down to a limit Microsoft have imposed limitation of ten on connections over the network to Windows NT Workstation 3.5, 3.51, 4.0, and Windows 2000 Professional. An amplification of this can be found on the Microsoft web site at http://support.microsoft.com/default.aspx?scid=kb;EN-US;122920.

The quick answer is use the TCP/IP network library DLL, by setting DatabaseNetworkDLL = Dbmssocn but see the text for more information.

In fact the connections are limited to file, print, named pipe or mail slot session (and perhaps other connections that use Net bios).

However, Motel clients are not always (in fact overall rather rarely) connected to the SQL Server. To unless everyone is logging in a once (and this can happen first thing in the morning) this error may only appear rarely, even when much larger numbers are using MonTel.

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 Micsorosft 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

Using Named pipes as mentioned above will impose a limit of only 10 (inbound) connections when the SQL Server (including MSDE) is located on an NT (based) Professional machine. However, TCP/IP Sockets don't impose this limitation. However note that the Server (on NT Pro) has to be installed with Named Pipes (though it can be changed after installation).

So in most instances (where the the network protocol is TCP/IP) the be solution is to set the DatabaseNetworkDLL = Dbmssocn in the PABX.INI file, and also set the library in the Server. For details on how to do this see: How to select up the correct MS SQL network libraries for MonTel on both the Server and Client.

In the event that you need to use Named pipes for example over an IPX based network there are some other options that may reduce the incidence of this problem.

Since the Server will disconnect when not in use, you can change the speed at which it disconnects. You can find the LAN Autodisconnect parameter in the registry under the subtree HKEY_LOCAL_MACHINE under the subkey: \System\CurrentControlSet\Services\LanmanServer\Parameters. You can use a command line tool to change this default. For example, to set the Autodisconnect value to 15 minutes, you would run the following command line: net config server /autodisconnect:15. Since the default is 15, you might want to try "net config server /autodisconnect:5" from the command line to reduce the wait time. But be aware of the side effects mentioned in the article, and linked topics. Microsoft says that it is preferable to modify the LAN Autodisconnect directly in the registry. Try setting it to 5 for starters and if it keeps happening down to 1. Even 0 in the end might be worth a try!

See also the Microsoft web site for http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B128167 and http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B138365

Note that this is only required for the machine that hosts MSDE or SQL Server.

The other possibility is that the sessions may have "locked" or crashed in Windows 2000, perhaps a re-boot is in order if one hasn't been done for a while.

If you haven't updated MSDE to SP4, this might be worth a read. This error is very unlikely to be occurring with MonTel, however it is a recommended step, since it also solves some potential security issues. http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B253010.

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