Algorithm to Connect Clients to a Database Server Based on the Transmission Control Protocol/Internet Protocol Sockets
Original Publication Date: 1994-Jul-01
Included in the Prior Art Database: 2005-Mar-27
Disclosed is an invention which provides algorithms and data structures that can be used in implementing the client connect/disconnect protocol between a Database Manager* (DBM) socket based client and a DBM socket based server.
Algorithm to Connect Clients to a Database Server Based
on the Transmission
Control Protocol/Internet Protocol Sockets
an invention which provides algorithms and data
structures that can be used in implementing the client
connect/disconnect protocol between a Database Manager* (DBM) socket
based client and a DBM socket based server.
So far the
OS/2* DBM has been offered as a client/server
solution that uses several proprietary transport protocols and a
private data- base protocol to connect remote clients to the DBM
server. As part of the requirements for taking DBM to multiple
platforms that include the AIX* and UNIX** operating systems there is
the need to support addi- tional transport protocols that are most
common in those systems. One such protocol is the Transmission
Control Protocol/Internet Protocol, better known as TCP/IP.
The new OS/2
DBM uses a new process model that strives to keep
the number of processes in the server node to a controlled limit such
as to avoid problems with scaling and excessive operating system
scheduling overhead. The TCP/IP socket paradigm allows database
connections made through the TCP/IP transport protocol to potentially
be managed by the DBM server without the need to create application
agent processes in the server.
application linked to the socket based DBM client can
make any requests it must first connect itself to the socket based
DBM server. The following data structures are used for making the
initial client connection and for the header part of all subsequent
database function requests.
/* Client Request Packet */
void * connection_handle;
/* Client Reply Packet */
void * connection_handle;
simplification of this design is the use of ASCII
representations for numeric values in the request/reply data packets,
which requires both client and server to do the corresponding data
conversions. The size twelve used in most fields is chosen to keep
address alignment, which insures portability. Both of these choices
must be revisited during design tuning.
for server_type in reply message are:
TCPIP_AIX_SERVER and TCPIP_OS2_SERVER. The server_rno and client_rno
fields correspond to the server and clients release numbers, which
are to be used in validating client/server release compatibility.
connection requests are handled by the following