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):
- isam.client (isamclie)
- isam.server (isamserv)
- sql.server (sqlserve)
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.