Failover in JDO

JDO needs the capability to recover from connection failures switching to backup servers upon failure.

Requirements

  • Switch to backup server when JDO is unable to obtain a connection to a database server/engine, or the connection breaks while in use.
  • User may be able to configure an ordered list of datasources.
  • JDO will default to the first datasource in the list, and if unable to obtain a connection, will attempt to obtain a connection from the next datasource in the list.
  • JDO will raise JDODatastoreException when unsuccessful attempts to obtain connection in all datasources are exausted.
  • If a database connection in use breaks, JDO may try to recover using the same datasource before switching to the next datasource in the list.
  • If a database connection in use breaks, JDO will apply changes made previously to the new connection during JDO transaction commit or flush. The broken connection has changes rolled back.
  • Each datasource in the list, may have a test statement that verifies if the connection is healthy.
  • For every new transaction, JDO will switch back to the first datasource in the list.
  • JDO, in background, may track which datasources are heathy to do faster switching.
  • No labels