Client/Server Operation

Introduction

There are three directories related to client/server operation. The directory names are (names in parentheses are shorter names for FAT file systems):

These directories contain files used in client/server operation, but not used in single user operation. In addition, files in the common, isam, and sql directories are used for both single user and client/server operation.

isam.client Directory

The isam.client directory includes files used on the client side for ISAM server operation. Some of the files are also used on the server side. Running make in the isam.client directory produces a library (usually isam.client.a used to link client side operations. This library is used in client/server operation where the isam library would be used in single user operation.

isam.server Directory

The isam.server directory includes files used exclusively for the ISAM server. Running make in this directory creates two executable programs. cqserver is the ISAM server process. (Note: In the Windows environment, the ISAM server process is called cqservew.exe.) cqstop is a utility to stop the ISAM server.

sql.server Directory

The sql.server directory contains files used for SQL client/server operation. Running make in this directory creates two executable programs. cqsqlsrv is the SQL server process. Note that the user never runs cqsqlsrv directly. The second executable program created in the sql.server directory is cqdaemon. This is a program which waits for SQL client side TCP/IP connections. When a connection is received, cqdaemon invokes cqsqlsrv for the connection.

Review of Client/Server Processes

There is only one ISAM server process (cqserver) running at any time. The user must start the cqserver process manually. It may run in either the foreground or the background.

The user also starts the cqdaemon process manually. It too may run in either the foreground or the background. The cqdaemon process accepts TCP/IP connections, and starts a cqsqlsrv process for each connection. When the connection terminates, the cqsqlsrv process terminates. cqdaemon continues to run, waiting for new connections.

TCP/IP Configuration

TCP/IP configuration consists of making the appropriate entries in the hosts and services files. Click here for more information about the TCP/IP hosts and services files.

There are two #define constants in cqoption.h used to specify the service names for the ISAM server service and the SQL server service. These are:

__CQL_SQL_SERVER_SERVICE_NAME__
"CQL"
__CQL_ISAM_SERVER_SERVICE_NAME__
"CQLISAM"
This configures the programs at compilation time to use the service names CQL and CQLISAM< for the SQL server and ISAM server, respectively.

The user must ensure that the port numbers assigned to the names CQL and CQLISAM are identical on both sides of the connections which use the services. The CQLISAM service is required only on the machine on which the ISAM server process is running. The CQL service is required on all machines making SQL server connections.

TCP/IP Configuration and ODBC Operation

One of the ODBC INI values is host. This is the name of the host on which the ISAM server and daemon processes are running. This name must exist in the hosts file.

Another ODBC INI value is Service. This is the service name for connection to the SQL server (usually CQL, as described in the preceding section). This service name must exist in the services file.