Consultor Eletrônico



Kbase 17953: Detecting dead remote clients
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   01/12/1999
Detecting dead remote clients


Many of our users ask how a Progress server detects a dead remote
client.

Progress cannot detect a dead remote client. There is no watchdog.
Progress relies on the network protocol (TCP, SPX, NETBIOS, etc...)
to notify the database that a remote user has died or disconnected.
If a dead remote client is not being removed from the database, the
network stack is not notifying the Progress database. In many cases
a patch or upgrade to the networking protocol will fix the problem.

However, on NT there is a ClientTimeOut Progress parameter you can use. It allows the server process to determine whether a client has been inactive for a specified period of time, and if so, the server disconnects the client and backs out any related active transactions. In version 7 of Progress on NT the ClientTimeOut parameter should be put in the [Startup] section of the progress.ini file. In version 8, it should be put in the [Startup] section of the registry:
HKEY_CURRENT_USER\Software\PSC\PROGRESS\<ver>\Startup

The syntax is:
ClientTimeOut=n
where n is the number of minutes a client can be idle before theserver disonnects it.

Unix and VMS systems have a KeepAlive option which functions in much the same way. KeepAlive is a TCP setting, not a Progress parameter. Please see the following knowledgebase articles for more detailed information:

13493 Socket KeepAlive Q&A, disconnecting of remote clients
16001 KeepAlive functionality on VMS
16429 KeepAlive option for NT server
17130 How to set the socket KeepAlive on HPUX