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.

The classic pool offers common and useful operations:

  • lifetime of objects
  • a common log writer
  • a minimum size
  • a maximum size
  • the possibility to setup a way to wait for objects when all objects are used
  • an object check level to verify object before returning to user
  • a garbage collection option
  • a common PoolHelper object, to create, verify and destroy object
  • objects are linked to a generation of objects when they are created

Download:

XAPool on Objectweb SourceForge

XAPool source :xapool-1.2.1-src.tgz
XAPool binary :xapool-1.2.1.tgz
XAPool jar file :xapool.jar

XAPool source :xapool-1.2-src.tgz
XAPool binary :xapool-1.1.tar.gz
XAPool binary :xapool-1.0.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.2
Javadoc API 1.1
Javadoc API 1.0
1.2.1:
------
- added a console appender to the log4j configuration file, to 
  log with the complete name (org.enhydra.jdbc.xapool)
- fixed a bug when using multiple connection inside 
  the same transaction
- changed the logger name xapool, and now use the complete name
  org.enhydra.jdbc.xapool

1.2:
----
- bug fixes in JNDI mechanism
- added logs with commons-logging
- added several examples


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

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
  • ExperLOG embeddes XAPool in its e-commerce suite : ExperSHOP
  • JOTM (Java Open Transaction Manager) uses XAPool as XA pool datasource
  • XAPool is now integrated into JettyPlus from MortBay.org
To do list:
  • to implement JCA (Java Connector Architecture)
  • to validate with 2.0 JDBC driver
  • to validate CallableStatement

download section
mailing list
documentation
change log
examples
license
links
success stories
to do list
http://www.enhydra.org
http://www.objectweb.org
http://debian-sf.objectweb.org


[Last changes: May 20, 2003]