Aspects of embodiments of the present disclosure include a highly
available database cluster that can maintain a connection with
potentially geographically remote client application programs, including
non-fault tolerant application programs, even in the event of one of the
database management systems (DBMS) of the cluster becoming unavailable.
For example, the database cluster can advantageously move a client
connection between a failing, unbalanced, or overloaded DBMS, to another
DBMS within the cluster. The database cluster can include connection
managers that monitor a connection between a client application program
and a primary DBMS. When one connection manager determines that the
primary DBMS is unavailable, the connection manager of a secondary DBMS
can assume the connection to the client application as if it were the
primary DBMS. The connection manager can finish all open transactions,
thereby avoiding the need to roll back the same. Moreover, the connection
managers can monitor the connection at the DBMS communication level, such
as, for example, the SQL*Net level.