ANNOUNCE: DBIx::HA 0.91, High Availability for DBI

[email protected] (Henri Asseily) Wed, 20 Oct 2004 16:51:39 -0700
Newsgroups perl.dbi.users,perl.dbi.announce
Message-ID <[email protected]>
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