Previous Page TOC Index Next Page

NETWORK CONNECTIONS


The database server and client transfer information between each other through the computer network using a communication protocol.

When a database server process is started, it will publish at least one network name that distinguishes it in the network. We say that the server starts to listen to the network using the given network name. The network name consists of a communication protocol and a server name.

To establish a connection from a client to a server they both have to be able to use the same communication protocol. The client has to know the network name of the server and often also the location of the server in the network. The client process uses the network name to specify which server it will connect to.

This chapter will give you information on how to administer network names.

Network Names for Servers

The network name of a server consists of a communication protocol and a server name. This combination identifies the server in the network. The network names are defined in configuration file solid.ini in [Com] section with the Listen parameter. The solid.ini file should be located in the server program's working directory or in the directory set by the SOLIDDIR environment variable.

A server may use an unlimited number of network names. To make establishing connections easier all components of network names are case insensitive.

Network names are managed on the NETWORK page in SOLID Remote Control or directly by editing the server configuration file solid.ini. An example of an entry in solid.ini:

[Com]

Listen = tcpip 1313, nmpipe solid

The example contains two network names which are separated by a comma. The first one uses the protocol TCP/IP and the service port 1313, the other one uses the Named Pipes protocol with the name ‘solid’. In our example the ‘tcpip’ and ‘nmpipe’ are communication protocols while ‘1313’ and ‘solid’ are server names.

If the Listen parameter is not found SOLID uses environment dependent defaults as network names.


NOTE 1. When a database server process is started it publishes the network names it starts to listen to. This information is also written to a file named solmsg.out in the located in the same directory as the solid.ini file.
NOTE 2. Network names must be unique within one host computer. For example, you cannot have two SOLID Servers running, both listening to the same TCP/IP port in one host, but it is possible that the same port number is in use in different hosts. Exceptions to this are the NetBIOS and IPX/SPX protocols, which require that used server names are unique throughout the whole network.


To Add a Network Name for the Server Using SOLID Remote Control

To Modify a Network Name

To Remove a Network Name from the Server


NOTE. The modifications to network names become active immediately after pressing the Save or Remove button.
HINT. You can use the Enabled check box to select the network names you use. You can disable and enable a protocol by checking the Enabled checkbox in the Edit dialog box.


Network Name for Clients

The network name of a client consists of a communication protocol, an optional host computer name and a server name. By this combination the client specifies the server it will establish a connection to. The communication protocol and the server name must match the ones that the server is using in its network listening name. Most protocols need additionally the host computer name to be specified if the client and server are running on different machines. All components of the client’s network name are case insensitive.

The client’s network names are defined in the configuration file solid.ini in the [Com] section with the Connect parameter. The solid.ini file should be located in the client program's working directory or in the directory set by the SOLIDDIR environment variable.

The following connect line in the solid.ini of the client workstation will connect a client application using the TCP/IP protocol to a SOLID Server running on a host computer named ‘spiff’ and listening with the name (port number in this case) ‘1313’.

[Com]

Connect = tcpip spiff 1313

If the Connect parameter is not found in the configuration file solid.ini the client uses the environment dependent default instead. The defaults for the Listen and Connect parameters are selected so that the client will always connect to a local SOLID Server listening with a default network name. So the local communication (inside one machine) does not necessarily need a configuration file for establishing a connection.


NOTE 1. When the connection is requested by a client application program using the SQLConnect function the network name of the server is given as a Data Source Name parameter for that function. If the given name is not an empty string, its contents are used as a network name and the Connect parameter in the configuration file is omitted. If an empty string is passed, the possibly existing Connect parameter is used.
NOTE 2. In the Windows (3.x, 95, NT) operating system, the connection can be made by using the SOLID ODBC Driver. When a client program is using the SOLID ODBC Driver, the network name of the server can be used as the ODBC Data Source Name and the Connect parameter in the configuration file is not used.


Communication Protocols

A client process and SOLID Server communicate with each other by using computer networks and network protocols. A network operating system - for example, IBM LAN Server or Novell NetWare - is not necessarily needed. You only need a functioning communication protocol for both ends. Supported communication protocols depend on the type of computer and network you are using.

The following paragraphs describe the supported communication protocols and common environments that may be used and also show the required forms of network names for the various protocols.

Shared Memory

Usually the fastest way two processes can exchange information is to use Shared Memory. This can be used only when the server and client processes are both running in the same computer. The Shared Memory protocol uses a shared memory location for moving data from one process to another.

To use the Shared Memory protocol in SOLID Server, select ShMem from the list of protocols in SOLID Remote Control and enter a server name. The server name has to be unique only in this computer.

The Format Used in the solid.ini File

Server   Listen = shmem <server name>

Client Connect = shmem <server name>

NOTE 1. Server names must be character strings less than 128 characters long.
NOTE 2. This protocol cannot generally be used if the client and server programs run under different operating systems in the same computer. For example, you cannot use this protocol to communicate from a client process running under a Windows OS/2 session to a server running on the same computer under native OS/2.


ShMem32

There is a special protocol ShMem32 available when connecting from a Windows 16-bit application to a 32-bit server running on a Windows NT or Windows 95 operating system. This implementation uses the general thunk facility of Win32 API to make the 16- to 32-bit calls possible.

This is the suggested way of connecting from 16-bit applications, such as SOLID Remote Control and SOLID SQL Editor, to a native Windows NT or Windows 95 SOLID Server (32-bit) running in the same machine.

ShMem32 is also available SOLID Server for Windows 16-bit when it is run in Windows 95 or Windows NT. When run in such an environment SOLID Server automatically starts to listen to both 16-bit and 32-bit ShMem protocols with the following specification

Listen = ShMem SOLID

Client applications first try to connect using the 16-bit version but if it does not succeed, they try ShMem32 with the following specification

Connect = ShMem32 SOLID

TCP/IP

The TCP/IP protocol is typically used for communicating to a server process running under a UNIX operating system. When starting a server using the TCP/IP protocol, you must reserve a port number for it. You will find reserved port numbers in the /etc/services file of your system. Select a free number greater than 1024 since smaller numbers are usually reserved for the operating system.

To use the TCP/IP protocol, select TCP/IP in the list of protocols in SOLID Remote Control and enter a non-reserved port number.

The Format Used in the solid.ini File

Server    Listen = tcpip <server port number>

Client Connect = tcpip [host computer name]
<server port number>

NOTE 1. If the server is running in the same computer with the client program, the host computer name need not be specified. The client computer has to have the used host name listed in its etc/hosts file or it must be recognized by the DNS (Domain Name Server). You can also give the host computer’s TCP/IP address in dotted decimal format (e.g.: 194.53.94.97) instead of its host name.
NOTE 2. On Windows NT and UNIX the TCP/IP protocol is usually included in the operating system. On other environments (like Windows, OS/2, VAX/VMS) the TCP/IP software needs to be installed to the system. For a list of supported TCP/IP software, contact your SOLID Server dealer.
NOTE 3. From SOLID Server version 2.2 the protocol name "wsa" is replaced by "tcp". However the name "wsa" can still be used for backward compatibility.


Using Windows Sockets

In the Windows operating system a third party software package containing winsock.dll file is required. The SOLID Server Windows Sockets driver has been tested with the following third party Windows Sockets packages:

UNIX Pipes

The UNIX domain sockets (UNIX Pipes, Named Pipes, portals) are typically used when communicating between two processes running in the same UNIX machine. UNIX Pipes usually have a very good throughput. They are also more secure than TCP/IP since Pipes can only be accessed from clients that run on the computer where the server executes.

When starting a server using UNIX Pipes, you must reserve a unique listening name (inside that machine) for the server, for instance, 'solid'. Because UNIXes handle the UNIX domain sockets as standard file system entries, there is always a corresponding file created for every listened pipe. In SOLID Server's case, the entries are created under the path '/tmp'. Our example listening name 'solid' creates the directory '/tmp/solunp_SOLID' and shared files into that directory. The '/tmp/solunp_' is a constant prefix for all created objects while the latter part ('SOLID' in this case) is the listening name in upper case format.

The Format Used in the solid.ini File

Server   Listen = upipe <server name>
Client   Connect = upipe <server name>

NOTE 1. Server and client processes must run in the same machine in order to use UNIX Pipes for communication.
NOTE 2. The SOLID Server process must have a "write" permission to the directory '/tmp'.
NOTE 3: The client accessing UNIX Pipes must have an "execute" permission to the directory '/tmp'.
NOTE 4. The directory '/tmp' must exist.
NOTE 5. UNIX Pipes cannot be used in SCO UNIX.


NetBIOS

The NetBIOS protocol is commonly used in the Windows (3.x, 95, NT) and OS/2 operating systems.

To use NetBIOS protocol, select NetBIOS in the list of available protocols in SOLID Remote Control Network page, and enter a non-reserved server name.

The Format Used in the solid.ini File

Server   Listen = netbios [-aLANA_NUMBER] <server name>

Client Connect = netbios [-aLANA_NUMBER] <server name>

NOTE 1. The server name must be a character string at most 16 characters long. It may not begin with an asterisk (*).
NOTE 2. In the above format the optional -aLANA_NUMBER is used to override the default value of the LANA number.
NOTE 3. In Windows NT the available LANA numbers can be checked using the Network Setup found in the Control Panel. The default value 0 may not be generally very good. You should choose the one(s) where the protocol stack matches the other computers you are using. The LANA number (Network Route: Nbf->Elnk3->Elnk31) that uses NetBEUI as a transport usually functions quite smoothly when used for SOLID communication.
NOTE 4. The server names have to be unique in the whole network. Establishing a connection or starting the listening using the NetBIOS protocol may be somewhat slow because of the checks needed for uniqueness.
NOTE 5. SOLID Server and SOLID Client versions 2.2 and newer use all available LANA numbers by default. This makes it unnecessary to specify explicitly which LANA number the client or server should use. For backward compatibility the parameter ‘-aLANA_NUMBER’ remains available.


Named Pipes

Named Pipes is a protocol commonly used in the Windows (WfW, 95, NT) and OS/2 operating systems.

Windows for Workgroups and Windows 95 support Named Pipes only in client end communication. Windows NT supports Named Pipes both in server and client end communication.

In OS/2 Named Pipes can always be used locally inside one machine. OS/2 3.0 Warp Connect contains the Lan Requester and hereby also supports a Named Pipes network client. Using Named Pipes from inside another OS/2 system (1.x, 2.x or 3.0 Warp) over a network needs additionally the Lan Requester client software to be installed. To run Named Pipes the server always needs components from the Lan Server product to be installed.

The Format Used in the solid.ini File

Server   Listen = nmpipe <server name>

Client Connect = nmpipe [host computer name]
<server name>

NOTE 1. The server names must be character strings at most 50 characters long.
NOTE 2. If the server is running in the same computer with the client program, the host computer name should not be specified. The only exception to this is Windows NT: if a Windows 16-bit client application (such as SOLID SQL Editor) is connecting to a native Windows NT process (SOLID Server) the host machine name must be specified.
NOTE 3. In order to connect to the SOLID Server for Windows NT through Named Pipes user must have at least the same rights as the user, who started the server. For example if an administrator starts the server only users with administrator’s rights are able to connect to the server through Named Pipes. Similarly if a user with normal user’s rights starts the server all users with greater rights are able to connect the server through Named Pipes. If a user doesn’t have proper rights, SOLID Communication Error 21306 message will be given. This has been fixed in SOLID Server version 2.1.
NOTE 4. It is not recommended to use the Named Pipes communication from SOLID Remote Control. The asynchronous nature of SOLID Remote Control communication may cause problems with Named Pipes.


DECnet

The DECnet protocol is used to connect to a server running on a OpenVMS system. To use this protocol in Windows, you need to have PATHWORKS version 4.0 or later installed to your client computer. To use this protocol in OS/2, you need to have PATHWORKS version 2.0 or later installed to your client computer.

To use the DECnet protocol, select DECnet in the list of protocols in SOLID Remote Control Network Page and enter a non-reserved server name.

The Format Used in the solid.ini File

Server    Listen = decnet <server name>

Client Connect = decnet <node name> <server name>

NOTE. To establish a connection the DECnet node name of the server machine is configured to your node database. The node name can be given either as a node number such as ‘1.1’ or as a node name such as ‘VAX1’.


IPX/SPX

The IPX/SPX protocol is used to communicate with SOLID Server for Novell Netware.

SOLID Server for Novell Netware starts listening with the default listening name SOLID if no listening name is specified in the configuration file solid.ini. When SOLID Server starts, it prints out the network and node information of the server machine.

The SOLID Server listening name can be given as a character string or as a socket number. If the given network name is a valid socket number i.e. hex number with exactly 4 characters (e.g. 400F) SOLID Server starts listening in the given port. If the network name could not be interpreted as a socket number it is treated as a server name character string and is published using Novell NetWare SAP (Service Advertising Protocol).

Connecting to a SOLID Server using SAP needs specifying only the correct server name in Connect parameter. If the server is listening using some given port, the full NLM server info (see comment below) has to be given.

To use the IPX/SPX protocol, select IPX/SPX in the list of protocols in SOLID Remote Control and enter a non-reserved server name.

The Format Used in the solid.ini File

Server   Listen = spx {<server name> | <socket number>}

Client Connect = spx {<NLM server info> |
<server name>}

NOTE 1. The server names must be less than 48 characters long.
NOTE 2. In the above format, <NLM server info> stands for a string containing the network number, the node number and the socket number separated by colons. For example, <NLM server info> for network 1, node 1, socket number 1313 is 00000001:000000000001:1313. You can abbreviate the information by removing the leading zeros. The previous server info could thus also be written as 1:1:1313.
<server name> stands for an alphanumeric string.
NOTE 3. The possibility to use socket numbers as the listening name is supported mainly for historical reasons. SAPing is intended to be the primary method.
NOTE 4. After removing a network name or shutting down SOLID Server using SOLID Remote Control the server name used may still remain reserved for up to one minute although everything completes successfully. The error ‘network name in use’ is displayed if SOLID Server is restarted immediately. This is a ‘normal’ NetWare SAP feature and happens more often if your network consists of more than one NetWare server. Propagating the SAP cancellation packets to every network node may take a while.


A Summary of Protocols

The following tables summarize the possible operating systems and required forms for network names for the various communication protocols.


NOTE. The following tables contain the protocols and operating systems that were available when this guide was printed. For an updated list, contact your SOLID Server dealer.


SERVER Protocols and Network Names

Protocol

Server OS

Network name in solid.ini file

Shared
Memory

Windows 3.x
WfW
Windows 95
Windows NT
OS/2

Listen = shmem <server>

NetBIOS

Windows 3.x
WfW
Windows 95
Windows NT
OS/2

Listen = netbios <server>

Named Pipes

Windows NT
OS/2 1

Listen = nmpipe <server>

IPX/SPX

Novell Netware

Listen = spx <server>
Listen = spx <socket number>

TCP/IP

Windows 3.x
WfW
Windows 95
Windows NT
UNIX
OS/2 4
VAX/VMS 2
OpenVMS 2

Listen = tcpip <port>

UNIX Pipes

UNIX

Listen = upipe <server>

DECnet

Windows 3.x 3
WfW 3
VAX/VMS
OpenVMS

Listen = decnet <server>

1) the network server must run LanServer or LanManager server program
2) requires TCP/IP product (available from Digital)
3) requires Pathworks for DOS/Windows v 4.1 or later, connect address cannot contain node name, only DECnet node number
4) requires IBM TCP/IP v 2.0 or later

CLIENT Protocols and Network Names

Protocol

Client OS

Network name in solid.ini file

Shared
Memory

Windows 3.x
WfW
Windows 95
Windows NT
OS/2

Connect = shmem <server>

NetBIOS

Windows 3.x
WfW
Windows 95
Windows NT
OS/2

Connect = netbios <server>

Named Pipes

WfW
Windows 95
Windows NT
OS/2

Connect = nmpipe [host] <server>

IPX/SPX

Novell Netware Windows 3.x 1
Windows 95 7
Windows NT 7
OS/25
WfW 1

Connect = spx <server>
Connect = spx <NLM server info>

TCP/IP

Windows 3.x
WfW
Windows 95
Windows NT
UNIX
OS/26
VAX/VMS 4
OpenVMS 4

Connect = tcpip [host] <port>

UNIX Pipes

UNIX

Connect = upipe <server>

DECnet

Windows 3.x 2
WfW 2
VAX/VMS
OpenVMS
OS/2 3

Connect = decnet <host> <server>

1) requires WfW with IPX/SPX or native Novell client support
2) requires Pathworks for DOS/Windows v 4.1 or later
3) requires Pathworks for OS/2 2.0 or later
4) requires TCP/IP product (available from Digital)
5) requires NetWare client for OS/2
6) requires IBM TCP/IP v 1.2.1 or later
7) requires Novell's Netware Client for Windows 95 and Windows NT

Logical Data Source Names

From version 2.2 on, SOLID Clients support Logical Data Source Names. These names can be used for giving a database a descriptive name. This name can be mapped to a network name in three ways:

This feature is available on all supported platforms. However, on non-Windows platforms, only the first method is available.

A SOLID Client attempts to open the file solid.ini first from the directory set by the SOLIDDIR environment variable. If the file is not found from the path specified by this variable or if the variable is not set, an attempt is made to open the file from the current working directory.

To define a Logical Data Source Name using the solid.ini file, you need to create a solid.ini file containing the section [Data Sources]. In that section you need to enter the ‘logical name’ and ‘network name’ pairs that you want to define. The syntax of the parameters is the following:

[Data Sources]

<logical name> = <network name>, <Description>

In the description field, you may enter comments on the purpose of this logical name.

If, for example, you want to define a logical name for the application ‘My_application’, and the database is located in a UNIX server that you want to connect to by using TCP/IP. You should include the following lines to the solid.ini file, which you need to place in the working directory of your application:

[Data Sources]

My_application = tcpip irix 1313, Sample data source

When your application now calls the Data Source ‘My_application’, the SOLID Client maps this to a call to ‘tcpip irix 1313’.

On Windows platforms (Windows 3.11, Windows 95 and Windows NT), the registry or a global initialization file can be used to map Data Sources. These follow the standards of mapping ODBC Data Sources on a system.

In Windows 95 and Windows NT, a Data Source may be defined in the Windows Registry. The entry is searched from the path "software\odbc\odbc.ini"

1. first under the root HKEY_CURRENT_USER and if not found,

2. under the root HKEY_LOCAL_MACHINE.

In Windows 3.11, a Data Source is searched from the file <windir>\odbc.ini, where the entry should be in the following format:

[MyDataSource]

Description = <A free format description>
NetworkName = <network name of the data source>

Using the previous example the entry would look as follows:

[My_Application]

Description = Sample data source
NetworkName = tcpip irix 1313

The order of resolving a Data Source name in Windows systems is the following:

In case an application uses normal ODBC Data Sources, the network name is mapped normally using the methods that are provided in the ODBC Driver Manager.

Previous Page TOC Index Next Page

Copyright © 1992-1997 Solid Information Technology Ltd All rights reserved.