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.
This release is the first one to use the new DBI swap_inner_handle() method, which allows for handles to be replaced without touching the originating code. Therefore it is not yet extensively tested in production, and proper care should be taken. However, many bugs have been fixed from the previous version, and the code has been significantly simplified (thanks again to swap_inner_handle()).



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



From the README:

DBIx/HA version 0.91
====================

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 perform housekeeping tasks unique
to the user's application.


- 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.



DEPENDENCIES

This modules requires Perl >= 5.6.0, DBI >= 1.44 and Sys::SigAction.
Apache::DBI is recommended when using mod_perl.
If using Apache::DBI, version 0.89 or above is required.


--- Henri Asseily



Reply via email to