Feature Description

The new configuration parameters:

CONNECTION_TIMEOUT 180 (in seconds)
DUMMY_PACKET_INTERVAL 60 (in seconds)

Support a connection timeout mechanism for the InterBase server. The time out mechanism can also be set by passing the parameters:

isc_dpb_connect_timeout
isc_dbp_dummy_packet_interval

through the Database Parameter Buffer (DPB) block during a database attach operation.

Functional Changes

Prior to version 5.0 of InterBase, users accessing InterBase remotely via a serial network (SLIP/PPP) had complaints about the inability to control/configure the connection timeout parameters (i.e. timeout values used to initiate and maintain such a connection) over a serial network. The common issue was that the parameters have hard-coded default values that are too brief for the latency of serial networks, making the remote interface between a client and a dialup server unreliable and frequently the connection is lost or cannot even be made. In addition some users may want to save on telephone costs by bringing down the physical connection and keeping it alive at much wider intervals than what is supported. Starting with version 5.0, the InterBase user has the ability to set/configure connection timeout parameters using one of two methods.

InterBase will support two configurable timeout parameters:

Connection timeout (in seconds)
Dummy packet interval (in seconds)

The connection timeout parameter is the amount of time a client is given to establish the initial connection to a server before giving up. The dummy packet interval is an error-detection mechanism to ensure that a client is still connected. Basically, it involves waiting on a client for incoming packets with a timeout on a connection. If no packets were received within a suitable time interval, a dummy packet is written to the connection. If the client does not respond, an error is returned during the write operation. Otherwise, dummy packets are always ignored. This protocol is usually used to detect when clients are lost abnormally due to a reboot or a network disconnection. The current default parameter values:

Timeout on new connection attempts: 180 seconds
Interval to wait before writing dummy packets: 60 seconds

There are two methods for configuring these parameters. The first method involves passing the parameter values via the Database Parameter Buffer (DPB) part of the database attachment API. So, two new DPB parameters are supported:

isc_dpb_connection_timeout
isc_dpb_dummy_packet_interval

The second method uses the standard configuration file "isc_config" as a place to specify alternate timeout values, by adding the following lines:

CONNECTION_TIMEOUT 180
DUMMY_PACKET_INTERVAL 60

Parameter values passed via the DPB override parameters read from the configuration file and the latter values override the initial defaults. Parameters are generally read or set on the client side and passed to the server to be used in turn to control the requested connection. [They are also read by the server from a configuration file and used to control incoming "attach" requests from clients if the latter don't override them with their own parameter settings].

To summarize, if the default timeout parameters are not satisfactory, the configuration file "isc_config" can be used to specify alternate values to be read on the server side, which in turn it uses to treat and control all incoming connections equally. Clients, on the other hand, can have a more granular control, by specifying their own unique timeout requirements by either setting their own configuration files or specifying alternate values part of the DPB block to be passed to the server, part of the attachment request.

Specific settings of interest:
Dummy packets transmission can be disabled (i.e. they are not sent to keep an established connection alive) if DUMMY_PACKET_INTERVAL is set to 0.
Large values for CONNECTION_TIMEOUT can also be utilized to wait on a client to virtually "wait forever" to establish a connection.