Improved exports in our OSGi bundle - for improved OSGi comfort.
As of this release, we no longer use our proprietary logging configuration mechanism. Instead, we now use your application's logging mechanism/framework by configuring a logger for com.atomikos or nested packages. This also yields better performance because w e no longer log to two destinations (our internal tm.out and other) but rather to one.
Improved poolSize javadoc.
The examples for ExtremeTransactions now contain a working OSGi example.
Prior to this release we relied on the JDK logging API. Due to a built-in limitation of the JDK logging, Tomcat-based tm.out files would often be messed up. This should now be fixed, by allowing you to select a different logging strategy like log4j or logback.
Various tuning interventions on String processing to improve performance here and there.
The fact that the pool is being destroyed should not be a warning but rather an informational log entry. This has now been implemented as such.
The logging noise in JDBC has been reduced significantly.
Added warning to the log if prepare yields errors.
Merged-in the bug fixes from releases 3.6.9-3.6.11 and 3.5.15-3.5.18 (see below for details).
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.
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.
Included version 3.5.9 of the core libraries.
Included changes of TransactionsEssentials 3.5.8
Fixed the UNIX demo shell scripts to be executable out-of-the-box.
Clarified license requirements in the JAX-WS demo README file.
Clarified exception message on expired license.
The latest TransactionsEssentials 3.5.5 release is now included, with some important fixes in there. See the TransactionsEssentials release notes for details.
The JAX-WS demo showed an XML-based handler config mechanism that did not support init preferences for the handler. This has now been fixed by including a programmatic configuration mechanism.
The documentation now mentions the new handler configuration mechanism instead of the old one.
Added demo for JAXWS transactions; see examples/jaxws.
Added more documentation for web services.
Removed some obsolete legacy modules (jars).
Added unexport of the SOAP endpoints during shutdown.
Upgraded to 3.5.4 of TransactionsEssentials.
Its value is now inferred by the other handler settings.
The URIs created for transaction IDs are now prefixed with atomikos://
The URIs for transactions are now of the form fake:// because they are not really accessible in a REST-style (via http).
We now support transactions that span multiple JAXWS (SOAP) services.
The xidFactory attribute had been removed from the bean class but not from the bean descriptor; this is now fixed.
The connection pool would not always check if a connection was in use before destroying it. Under high loads this would lead to problems, and this bug has now been fixed.
An error while checking for available connections would lead to the improper destroy of the last connection in the pool - this has now been fixed.
Fixed a threading issue reported in the forums: http://fogbugz.atomikos.com/default.asp?community.6.506.0
In some cases (notably a transaction timeout in between borrowing and first using a connection) the connection state would get corrupted, leading to subsequent messages like: "Connection accessed by transaction ... is already in use in another transaction:... Non-XA connections are not compatible with nested transaction use." This has been fixed.
Fixed a bug in the JMS JNDI mechanism - for details see this forum post: http://fogbugz.atomikos.com/default.asp?community.6.460.1
Improved the logic for borrowing a connection.
Fixed a bug where race conditions could lead to NullPointerExceptions in checking a non-xa connection's reusability.
The startup properties are no longer in the API but are now in the implementation-specific UserTransactionServiceFactory classes.
Commits are now done with the more recent core thread pooling mechanism. This deprecates the init parameter 'com.atomikos.icatch.soap_request_threads'.
We now again allow Java 1.4 to be used at runtime.
Fixed a bug in the connection state handling: timeout and rollback could result in a JDBC connection with autoCommit on.
The xidFactory attribute had been removed from the bean class but not from the bean descriptor; this is now fixed.
The property name in the sample jta.properties file was wrong - this has been corrected.
When the same thread called getConnection() twice then there was a reuse bug as reported here: http://fogbugz.atomikos.com/default.asp?community.6.411.0
Fixed a deadlock case between the connection pool and the JMS pooled connection, due to a synchronized observer callback.
We now offer a maven POM structure as a separate download.
Improved (clarified) heuristic log comments for XA branches.
Improved recovery when the JDBC/XA drivers are upgraded between shutdown and restart.
The MessageDrivenContainer now supports unsubscribe on close - meaning that closing the container will also unsubscribe for any durable subscriptions (if this option is set).
The JmxLogAdministrator can now be configured to show only heuristic transactions (i.e., the real problem cases) instead of all active transactions.
Refactored the TSInitInfo interface to move out implementation-specific startup properties. These are now in the factory class(es) for the UserTransactionService corresponding to the implementation.
We have optimized logging even more for root transactions: prepared states do not generate any logging overhead any more. This cuts down logging costs by 30% or more.
The JMS utility classes (in package com.atomikos.jms.extra) now support setting the (provider-specific) destinationName; this facilitates Spring (or other) configuration because you no longer need to obtain a reference to a Destination object first...
The build now works for Java 5 also. Previously, the build could only be done on JDK 1.4
Heuristic (hazard) exception states are now managed even better - this includes improved retry handling and better resolution after recovery.
Fixed a deadlock in the JMS pools.
Simplified the thread-specific reuse of non-xa JDBC connections, by exploiting the newer 'connection recycling' that is now built-in into the pools.
Heuristic log comments were improved for extra clarity.
If single-threaded two-phase commit is enabled (in the jta.properties
file) then commits are now executed in the same order as the resources were
accessed by the transaction.
We have added a Hibernate ConnectionProvider implementation to facilitate Hibernate 3.3+ configuration of the DataSource.
It is now possible to resume a transaction after it was marked as rollbackOnly.
The MessageDrivenContainer now allows (re)setting most of its properties after initialization.
Included changes of TransactionsEssentials up to release 3.4.4
Added license enforcement via license files
Improved class loading strategies to be more compliant with J2EE
There is no longer a need to create cumbersome .lck files upon startup
The documentation now mentions the new JMS capabilities
Integrated support for Log4J integration via SLF4J.
Added support for enabling/disabling shutdown behavior on VM exit, via a startup property.
The epoch file now goes into the log directory instead of the output directory.
Added support for single-threaded commit via a startup property.
Removed JAX-RPC support (to be replaced by JAX-WS in the next release).
Corrected version and product metadata.
Improved resolution of logos in the PDFs.
Updated manuals for ExtremeTransactions.
Removed deprecated application server integration modules such as JBoss, Tomcat and more.
Included all changes of the TransactionsEssentials 3.3.1 core.
RMI export/import: fixed a bug where properties were not included - leading to an independent root transaction on the importing side.
Fixed build.xml for j2se demos so that rebuild doesn't make the RMI demos crash.
Changed the RMI Client class to NOT call the portal twice in the same transaction.
The properties file can now also be called 'transactions.properties' instead of just 'jta.properties'. Extra properties were added to support new features (see the sample properties file included in the release).