2005/02/11 - xavier.spengler@experlog.com XAPool: XAPool is Another Pool Description: ------------ XAPool is a project which allows to use a pool, connection pooling, and XA connection pooling. A generic pool is used to store various of objects (see org.enhydra.jdbc.pool.GenericPool). Pools of JDBC connections, and XA connections are presents in org.enhydra.jdbc.pool.StandardPoolDataSource and StandardXAPoolDataSource. Package contents: ----------------- src: source files (java files) under org.enhydra.jdbc doc: the documentation of the project archive: files to build xapool archive externals: jar files need to compile source files ext: external and useful files examples: examples to test and show functionalities 1.5.0: ----- - #303280: XAPool does not cooperate with transaction manager when testing connections: this bug is fixed - #303239: IllegalMonitorStateException in PoolKeeper: this bug is fixed - #303191 (and #303192): unable to excute new connection after expiration: this bug is fixed - #303302 StandardXADataSource.toString() fails with NullPointerException: this bug is fixed - #300994: NullPointerException occurred when multi-thread access: this bug is fixed - added jdbc 1.4 methods for Statement, PreparedStatement and CallableStatement objects - added methods and fixed bugs about Statement and PreparedStatement objects which were not included into transactions - added the last version of JOTM (2.0.8), new version of Carol, commons-logging, jotm_jrmp_stubs. And added connector-1_5.jar and howl.jar 1.4.2: ------ - bug fix, contribution by Miro. Bug found with SAPdb in his test suite. 1.4.1: ------ - bug fix for poolkeeper in while loop - important submission from Tuomas Kantonen about synchronisation problem into the pool - Hanging tomcat problem, poolkeeper object was not properly created - added methods in CoreStatement for jdk 1.4 - bug found by Miro about TM which was not yet initialized (worked into 1.3.2), this bug has been fixed 1.3.3: ------ - changed license from EPL to LGPL 1.3.2: ------ - remove printStackTrace call in GenericPool class - remove .error(...) calls, and replaced them by .debug(...) - save autocommit status for CallableStatement object now - restored autocommit after transaction (maybe a regression) - restored autocommit for createStatement (never done) - propagated the log object inside StandardConnectionPoolDataSource - removed e.printStackTrace, and only use error level, with +e inside the message. - added toString() method on several objects, to dump internal states of XAPool's objects - added log.debug message into close() method (StandardXAConnectionHandle) - change the status of isReallyUsed in the close() method (StandardXAConnectionHandle) - set up the autocommit flag in the close() method when autocommit is false, and tx=null, just after the rollback call to the connection (StandardXAConnectionHandle) - added a comment into CoreConnection object (setAutoCommit) - removed unused code in StandardXAPreparedStatement and StandardXAStatement, preInvoke methods are no longer used. - added toString methods on many objects to print out internal objects 1.3.1: ------ - added logging information - changed Andy last name (sorry) - made a lot of changes in jotmxapooltest by Andy - added example HSQL config - added sapdb example in spy.properties - prepareStatement(String, int, int) was not getting associated with the transaction - get the last version of jotm (1.4.3) 1.3: ---- - added comments in GenericPool - added a lot of method comments - fixed a bug with multithreaded process (was a regression) - removed a wrong test, which made a bug, in XAConnection - added 2 tests, a multithreaded test and a contribution from A. Zeneski - added the last version of JOTM (1.4.3), and carol - removed TraceTm uses with JOTM - changed the XAPool way of log (log4j.properties) 1.2.2: ------ - removed the limit for used objects inside the same transaction (limit was 100) - fixed a bug in the XADataSource object, to check if the current connection is not already in the freeConnection Vector (bug #319) - fixed a bug when the pool size decreased and connection lifetime is reached. This bug appears when the pool activity is not important, and the number of used connections is lesser than the max size of the pool. - switch to off the boolean status of the pool 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 To do list: ----------- - validate with 2.0 JDBC driver - validate CallableStatement