English

FAQ: What changes were made at the 9.2 release to better deal with orphaned ArcSDE Connections?

Question

What changes were made at the 9.2 release to better deal with orphaned ArcSDE Connections?

Answer

When attempting to connect to an ArcSDE instance and the process encounters the "maximum number of connections exceeded" error, the connecting process then iterates through each entry in the process_information table to verify if the entry is a valid and active connection. If an entry is discovered to be not valid, or orphaned, it is removed and any orphaned entries for the connection in the various ArcSDE lock tables are also removed. Once all orphaned entries have been removed, if the number of connections is less than the maximum number of connections allowed, the process acquires the connection.

However, entries in the process_information table are still valid when it corresponds to a session in the database. A database session terminates when the corresponding application exits and the operating system process ends (i.e., the gsrvr.exe process for application server connections, or ArcCatalog.exe, and ArcMap.exe processes on the client machine when using a direct connection).

Orphaned entries in the process_information table are therefore defined as entries in the table, which do not have the corresponding database connection. This means that if there is still a database session associated with an active process, such as the gsrvr.exe or ArcMap.exe, the entry in the process_information table is not considered orphaned and is not removed.

When working with the application server, the ArcSDE initialization parameter TCPKEEPALIVE can be used to manage the life span of gsrvr.exe processes on the server. For example, if a gsrvr.exe process has been inactive longer than the time limit defined by the TCPKEEPALIVE environment, the operating system will automatically kill the process, which in turn will end the database session and also result in orphan entries in the process_information table. See the link in the Related Information section for more information on TCPKEEPALIVE.

Related Information