We've improved support for short properties that need to be converted from a text/XML configuration file.
The UserTransactionManager class has a class-level synchronized block used for init purposes. We've added extra checks so this block is only executed if really needed. This optimizes performance by limiting the number of cases where threads will block each other.
We've added a reset of the underlying ObjectOutputStream for serialized logging, to avoid high memory consumption when the JDK keeps pointers to all previously serialized objects since the last checkpoint.
Fixed a critical bug where errors on delist would cause connection pool exhaustion.
The logging noise in JDBC has been reduced significantly.
Added warning to the log if prepare yields errors.
Improved shutdown procedure to wait for any listener threads to exit first. This should avoid ugly shutdown warnings and improve overall shutdown.
It is now possible to specify an (optional) extra receiveTimeout property - which will speed up shutdown because blocked receiver threads will exit sooner if a value is specified lower than the transaction timeout.
Corrected NullPointerException bug on recovery of certain transaction states.
Added workaround for MQSeries memory leak when connectivity to the broker goes down.
We now log a warning if a connection pool is shutdown while some connections are still being used.
Fixed a bug where two subsequent getConnection() requests (by the same thread) would get the same connection from the same AtomikosConnectionFactoryBean - leading to problems with the later close logic.
Improved the retry/refresh logic when the JMS backed is unreachable.
When using the sendXXX utility methods of the sender template, one would get exceptions if only the destinationName (not the destination itself) had been set. This has now been fixed.
Fixed a bug where closing a JMS session would also close the underlying vendor session, leading to problematic rollback/commit.
Improved logging of non-recoverable coordinators to help diagnose problems.
From now on, setting com.atomikos.icatch.threaded_2pc=false will also change the way the timeout mechanism behaves: active transactions will no longer be rolled back by the timeout thread, but rather set to rollbackOnly instead. Other transaction states are not affected.
The logging noise in JDBC has been reduced significantly.
Added warning to the log if prepare yields errors.
This should make out-of-the-box integration with Tomcat and Spring easier.
Improved the way that unexpected errors are dealt with: the connections should be closed in those cases also.
Improved behavior after close: only begin() now throws an exception. The other JTA methods are allowed to proceed with the intention of maximizing the chance of clean shutdown.
Removed synchronization issues among concurrent threads that could cause a deadlock.
This should now also be fixed.
Fixed a deadlock situation during shutdown.
Checking for enlisted XAResources has been relaxed to allow more use cases than before.
Fixed a bug where hazard XA branches could not terminate due to connectivity failures after restart.
Improved the way recovery diagnoses itself - to avoid unnecessary log warnings.
This has been fixed.
The logging noise in JDBC has been reduced significantly.
Added warning to the log if prepare yields errors.
The new 'propagateJtaTimeoutToXaResource' configuration property for JDBC and JMS now allows you to disable timeouts propagate via XA. For some vendor's XAResoure implementations this timeout seems to give problems and this property can serve as a workaround.
Vendor-specific flags for starting a new XA branch as well as joining/suspending/resuming/ending an existing branch are now supported on the JDBC and JMS connector classes.
The new property 'xaPropertyNamesToHide' allows you to specify what vendor-specific XA properties should be hidden in the log entries. Typically, this would be used for sensitive information like passwords.
We now avoid generating too much log content for timeouts.
Fixed a condition where recovery could lead to out-of-memory errors.
Fixed polluting Mockito dependency in the poms.
Removed top-level folders that make unzipping to artifactory impractical.
Committing 1PC transactions would be converted to heuristic hazard cases upon recovery, which is in fact incorrect because these will then undergo 2PC commit retry. This has now been fixed: committing 1PC transactions are now simply forgotten upon recovery.
Empty, committing transactions would needlessly generate logging overhead and also generate needless heuristic warnings upon recovery. This has now been fixed. For the original report, see this forum post.
Improved synchronization to avoid race conditions while checking whether or not a connection is taking part in a transaction. Also see this report in the forums.
Corrected the documentation: removed obsolete references to folders that no longer exist in the 3.7 release.
Corrected the link to the Atomikos team page in the release documentation.
This bug has now been fixed.
Ported fix for case 80464 - error on shutdown of MessageDrivenContainer.
Ported fix for case 83599: MessageDrivenContainer - add receiveTimeout property.
Removed obsolete reference to OraXidFactory in the docs.
Added the RMI examples - missing in the 3.7.0 release.
Improved checks for max length of the different names that form the Xid together.
Threaded commits are now disabled by default, since they cause too many issues with JDBC and JMS connectors.
Optimized logging overhead for performance.
Improved logging when this happens.
Fixed a bug where the XASession of the underlying JMS connector was closed too early.
Added working javadoc references for the open source release.
Fixed clientID issues with ActiveMQ (and other durable subscriber scenarios).
Updated docs to reflect JDK 1.5 requirement.
We now log this as INFO, not WARN - to avoid log pollution.
Reusing JDBC Statement objects after commit leads to an undefined transaction context for the SQL that follows. This is a bug; for now it has been fixed by disallowing reuse across transaction boundaries, but if this turns out to be problematic then we will do something more sophisticated.
Added missing jta.properties file.
Added missing sources in TransactionsEssentials distribution.
Fixed a bug where INFO level comments were logged as DEBUG instead.
Fixed recompilation problem in the TransactionsEssentials distribution.
Fixed obsolete reference to missing test folder in recompilation of the TransactionsEssentials distribution.
TransactionsEssentials now includes the missing source code.
You can now use our JMS connections without getting warnings whenever you disable JTA usage.
Changed proxy generation back to the 'old', pre-OSGi way due to performance problems. JDBC and JMS resources now have to be supplied as extension bundles to our transactions-osgi jar.
Fixed the demo scripts to work on UNIX systems.
The javadoc is now included in the ExtremeTransactions release (but not for TransactionsEssentials).
The transactions-essentials.jar has been replaced with the transactions-osgi.jar, and the latter is also our main OSGi bundle.
We now log a warning message if the min/maxPoolSize is set to the default value (1) - in order to avoid performance problems.
TransactionsEssentials now includes the missing source code.
We now log a clear warning message if the testQuery is not set. Setting it is highly recommended; a default value is unrealistic because of SQL dialects.
Improved the diagnostic message when this happens.
All our TransactionManager implementation classes now also implement UserTransaction - this should make JNDI integration easier because we can now expose the TransactionManager instance under the UserTransaction lookup name.
Optimized logging for performance: we now only really construct the expensive DEBUG and INFO Strings when needed, i.e. if the log level is appropriate - cf http://fogbugz.atomikos.com/default.asp?community.6.1661.2#discussTopic1677
We now also allow non-query SQL statements in the testQuery property - cf http://fogbugz.atomikos.com/default.asp?community.6.1117.3#discussTopic1124
We now also deregister all MBeans created by the JmxTransactionService - cf http://fogbugz.atomikos.com/default.asp?community.6.1430.0
Improved logging of commit decisions to avoid NullPointerException instances on recovery - cf http://fogbugz.atomikos.com/default.asp?community.6.1530.0
We now handle InterruptedException instances according to the book - cf http://www.javaspecialists.co.za/archive/Issue056.html and http://fogbugz.atomikos.com/default.asp?community.6.1698.5#discussTopic1718
Improved dealing with unresolved resources during recovery; i.e., when a resource is not found because it has been removed between shutdown and restart - cf http://fogbugz.atomikos.com/default.asp?community.6.1755.1
We now include the underlying cause exceptions.
WS-AT support (in the past available as JAX-RPC) has now been included for JAX-WS technology.
HTTPS is now supported for the two-phase commit SOAP ports, provided that the underlying SOAP stack supports it. To enable this feature, set the startup property com.atomikos.icatch.https to true.
A simple demo app is included for WS-AT over JAX-WS.