94285: Refactored connection pool with concurrentConnectionValidation
Refactored the connection pool: the testQuery is now executed outside of a synchronised block for better performance.
165262: Configuration.shutdown methods should log INFO message
In-line with INFO logging policies, shutdown methods now log an INFO message.
166914: ConnectionPool.borrowConnection: move testQuery execution outside of synchronised block
The testQuery used to be in a synchronised block, now this is no longer the case thanks to a new pool implementation. This is a port of fix 94285 (commercial branch) to the community.
166918: Simplified lock file handing on Windows
Merged https://github.com/atomikos/transactions-essentials/pull/5.166919: Auto-create all necessary directories for log files
Merged https://github.com/atomikos/transactions-essentials/pull/9.166920: Eclipse source bundle for this atomikos version
Merged https://github.com/atomikos/transactions-essentials/pull/10.159940: Inefficiency in connection recycling
A call to borrowConnection() used to become blocked due to one thread entering canBeRecycledForCallingThread() it that then waited for the SessionHandleState lock - if in use by another connection at the same time. We fixed this by making canBeRecycledForCallingThread() returning false without locking.
167171: JMS issue on double open
Fixed a JMS issue which was first described here.167189: JDBC/JMS connectors: create JNDI reference only after pool is created
We now create the JNDI reference only after the pool has been created - it does not make sense to expose a faulty pool.
167206: Improve logging - clarify "Prepare: NO vote"
We've clarified the error reporting to make it clearer what happened, and avoid confusion.
167208: Improve log warning for transaction timeout message
We've improved the logging for timeouts - to avoid confusion.
167209: Don't refresh XAResource for 1-phase commit
We used to refresh to XAResource on connectivity issues. Refreshing made little sense in case of 1-phase commit because there is no prepared transaction XID in the datasource, meaning a different connection would probably not know about it.
167220: Ensure that testQuery has no pool overhead
This is one of the best performance improvements we ever made: we now ensure that the (new) pool does not impact performance when setting a testQuery. This makes our pools about as fast as non-JTA/XA pools, meaning reliability comes without the performance cost for your application! (Check our commercial offerings if you want even more…)
167530: Recovery bug: init/checkpoint does not take the purge delay into account
Fixed a bug in the new recovery where checkpoints would purge too much.
167532: CachedRepository race condition: missing synchronisation
Fixed a synchronisation bug that would show up under high loads and would lead to incomplete checkpoints.
167358: REST/ACID: ParticipantAdapter should implement equals to avoid duplicate 2PC towards same backend
Fixed an issue with missing equals/hashCode implementations that would break 2-phase commit in certain conditions.
167400: New pool: avoid testQuery overhead on connection recycle
We've added a new pool that makes the testQuery more efficient. Now, we went even further and avoid the testQuery overhead on connection recycling. This mainly makes it faster for transactions that do multiple SQL statements in the same transaction.
167418: CleanupPendingTransactionContextFilter: also reset ThreadLocal transaction timeout
Thread reuse in Tomcat used to inherit the transaction timeout set by a previous request (if any). This could be confusing so we now reset the transaction timeout between requests.
167528: Tune default checkpoint interval for extra performance
The default checkpoint interval used to be suboptimal for performance - our commercial distribution is now tuned in this respect.