XAPool - XAPool is Another Pool !


Description:
This software allows to pool objects, JDBC connections and XA connections. It comes from Enhydra application server from Lutris. Now the project is hosted by the ObjectWeb consortium and managed by Experlog. It exports a DataSource (with a pool) which is a factory of PooledConnection, and XADataSource (with a pool) which is a factory of XAConnection (connections that can be used in distributed transactions). PooledConnection objects are created by a ConnectionPooledDataSource object, and pooled in a classical pool (GenericPool). XAConnection objects are built with a XADataSource object.

Download:

XaPool on OWForge
XaPool tar ball :xapool-1.0.tar.gz
XaPool tar ball :xapool-1.1.tar.gz
Mailing-list:
subscribe to the public mailing-list on OWForge
view archives of the public mailing-list
Documentation:
README.txt
Javadoc API 1.1
Javadoc API 1.0
1.1:
----
This version includes major changes, and correct a lot of bugs. Main changes are:
- AutoCommit value is now saved before the begin of the transaction and restored
  to the commit or rollback of the transaction
- when no transaction is defined, and the AutoCommit flag sets to false, when the
  user calls close() on the connection, the connection is rollbacked
- fixed bug when the connection is opened before the begin of the transaction
  and close after the commit or rollback (connection enrolled a posteriori)
- fixed bugs in the cache prepared statement mechanism
- added commons logging to log inside XAPool
- added 5 more examples (tests) to demonstrate the XAPool functionalities
To do list:
-----------
- validate with 2.0 JDBC driver
- validate CallableStatement
- add a complete restore mechanism with JNDI context (future contrib from Jeff)
The classic pool offers common and useful operations:
Examples:(all examples are described here)
GenericPool: use of the pool, just to show it is a classical pool
Pool Datasource: a sample to use connection from a datasource
XA Pool Datasource: to get connection which can be used in distributed transactions (this example comes from JOTM)
MultipleConnection: demonstrate the use of multiple connections in the same transaction
MultipleTransaction: one connection and multiple transaction
FalseRollback: here no transaction, but a rollback on the connection close()
SaveAutoCommit: save the state of the autocommit flag before the beginnig of the transaction and restore it after the commit or the rollback of the transaction
SimpleStatement: test the Statement implementation
License:
Enhydra Public License (EPL)

Links:
Success stories
To do list:

[Last changes: Apr 01, 2003]