DBIx::HA is a pure-perl high availability module for DBI. It specializes in failover and integrates properly with mod_perl and Apache::DBI, and should be integrated in your programs if you are using Oracle listeners or Sybase OpenSwitch (or any other database-level high availability layer).
Compared to DBD::Multiplex, DBIx::HA does not do multiple simultaneous writes. However, it can probably be used in conjunction with DBD::Multiplex to provide a best of both worlds.
Subsequent releases will use Sys::SigAction for signal handling.


$CPAN/modules/by-authors/id/H/HA/HASSEILY/DBIx-HA-0.55.tar.gz

  'DBIx-HA-0.55.tar.gz' => {
    'mtime' => '2004-01-30',
    'md5-ungz' => '8406276a98781073ae592009fc2bb48e',
    'md5' => '915ed803e0a7d40bafbcb783766769c5',
    'size' => 9335
  }


From the README:


DBIx::HA is a High Availability module for DBI. It is implemented by
overloading the DBI connect, prepare and execute methods and can
be seamlessly used without code modification except for initialization.

DBIx::HA also works seamlessly with Apache::DBI when available, and
ensures that cached database handles in the Apache::DBI module are properly
released when failing over.


Features of DBIx::HA are:

- multiple failovers
Should a datasource become unavailable, queries are automatically sent to
the next available datasource in a user-configured datasource stack.
All subsequent queries continue to hit the failover server until
reinitialized. This ensures that a failed datasource can be properly brought
back online before it is put back in service.


- timeouts
Database calls are wrapped in user-configurable timeouts. Connect and execute
timeouts are handled independently.


- configurable retries
Queries can be retried n times before a datasource is considered failed.

- callback function
A user-defined callback function can be called upon abnormal failure and
disconnection from a datasource in order to clean locally cached handles and
perform other housekeeping tasks.


- inter-process automatic failover under mod_perl
Failover can be triggered for a single process or a set of processes at the
application level. Specifically designed for Apache's multi-process model,
if one mod_perl process triggers a failover, it is propagated to all other
mod_perl processes using the same database handle.



DBIx::HA was designed primarily for reliability and speed. Functionality
that would compromise speed was not considered. This module has been tested
extensively at very high loads in the Apache/mod_perl/Sybase environment.


---
Henri Asseily



Reply via email to