Atomikos ExtremeTransactions Release Notes

This is ExtremeTransactions®, the Atomikos® flagship product with next-generation transaction management capabilities.

All projects: ExtremeTransactions 3.6.4

32798: Include TransactionsEssentials 3.5.8

Included changes of TransactionsEssentials 3.5.8

33445: .sh files are not executable -> change the zip ant task to do that

Fixed the UNIX demo shell scripts to be executable out-of-the-box.

33446: Change the demo README files to mention the license

Clarified license requirements in the JAX-WS demo README file.

33447: Clarify exception on expired license (not clear it seems)

Clarified exception message on expired license.

Release Notes for ExtremeTransactions 3.6.3

31575: Upgrade to TransactionsEssentials 3.5.5

The latest TransactionsEssentials 3.5.5 release is now included, with some important fixes in there. See the TransactionsEssentials release notes for details.

Release Notes for ExtremeTransactions 3.6.2

30004: Improve JAX-WS handler config on server-side

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.

30108: Update documentation to new handler config

The documentation now mentions the new handler configuration mechanism instead of the old one.

Release Notes for ExtremeTransactions 3.6.1

29311: Demo for JAXWS

Added demo for JAXWS transactions; see examples/jaxws.

29313: Add documentation for web services

Added more documentation for web services.

29592: Remove obsolete module: transactions-jetty5

Removed some obsolete legacy modules (jars).

29596: Implement unexportEndpoints

Added unexport of the SOAP endpoints during shutdown.

29905: Include TransactionsEssentials 3.5.4

Upgraded to 3.5.4 of TransactionsEssentials.

30005: activeRecovery init parameter is obsolete for handlers

Its value is now inferred by the other handler settings.

30013: Change URI scheme to atomikos://

The URIs created for transaction IDs are now prefixed with atomikos://

Release Notes for ExtremeTransactions-3.6

28661: Change URI format

The URIs for transactions are now of the form fake:// because they are not really accessible in a REST-style (via http).

29510: Add JAXWS support

We now support transactions that span multiple JAXWS (SOAP) services.

Release Notes for ExtremeTransactions 3.5.1

27885: QueueConnectionFactoryBeanBeanInfo inconsistent: xidFactory

The xidFactory attribute had been removed from the bean class but not from the bean descriptor; this is now fixed.

28665: Shrinking pool: should check whether connection is being used or not

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.

28678: ConnectionPool borrowConnection: exception causes destroy of last pooled connection!

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.

28623: jms connection pooling bug

Fixed a threading issue reported in the forums:

28843: Connection in use after timeout in nonxa JDBC

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.

28388: Resource already registered using JMS

Fixed a bug in the JMS JNDI mechanism - for details see this forum post:

28680: Refactor borrowConnection in pool

Improved the logic for borrowing a connection.

29060: NPE when checking pool connections under high load

Fixed a bug where race conditions could lead to NullPointerExceptions in checking a non-xa connection's reusability.

Release Notes for ExtremeTransactions 3.5

26833: Refactor startup properties (moved out of TSInitInfo)

The startup properties are no longer in the API but are now in the implementation-specific UserTransactionServiceFactory classes.

23398: CommitServer: reuse core thread pooling?

Commits are now done with the more recent core thread pooling mechanism. This deprecates the init parameter 'com.atomikos.icatch.soap_request_threads'.

27524: Update javac in build.xml: add source="1.4"

We now again allow Java 1.4 to be used at runtime.

27857: Transaction timeout in JDBC results in autoCommit mode

Fixed a bug in the connection state handling: timeout and rollback could result in a JDBC connection with autoCommit on.

27885: QueueConnectionFactoryBeanBeanInfo inconsistent: xidFactory

The xidFactory attribute had been removed from the bean class but not from the bean descriptor; this is now fixed.

27920: Default timeout property wrong name

The property name in the sample file was wrong - this has been corrected.

27793: Non-xa proxy: useCount incremented twice when reusing exisiting proxy

When the same thread called getConnection() twice then there was a reuse bug as reported here:

27614: Deadlock in JMS during onTerminated callback of PooledJMSConnection

Fixed a deadlock case between the connection pool and the JMS pooled connection, due to a synchronized observer callback.

21459: Maven POM support

We now offer a maven POM structure as a separate download.

21576: XAResourceTransaction: improve heuristic message

Improved (clarified) heuristic log comments for XA branches.

21689: Improve recovery problem across XA drivers

Improved recovery when the JDBC/XA drivers are upgraded between shutdown and restart.

26426: Add option to unsubscribe on close of topic receiver

The MessageDrivenContainer now supports unsubscribe on close - meaning that closing the container will also unsubscribe for any durable subscriptions (if this option is set).

21574: JmxLogAdministrator: option to show only heuristics

The JmxLogAdministrator can now be configured to show only heuristic transactions (i.e., the real problem cases) instead of all active transactions.

23486: Move startup properties out of TSInitInfo and into AbstractUserTransactionServiceFactory

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.

23693: Optimize roots: don't log prepared state

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.

21350: Add support for destinationName in JMS utilities

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...

26045: Make build work for Java 5

The build now works for Java 5 also. Previously, the build could only be done on JDK 1.4

26911: Improved handling of heuristic hazard problems

Heuristic (hazard) exception states are now managed even better - this includes improved retry handling and better resolution after recovery.

26976: Deadlocks

Fixed a deadlock in the JMS pools.

24071: Simplify nonxa with new connection recycling

Simplified the thread-specific reuse of non-xa JDBC connections, by exploiting the newer 'connection recycling' that is now built-in into the pools.

24109: Heuristic messages: improve clarity

Heuristic log comments were improved for extra clarity.

24579: Support commit ordering

If single-threaded two-phase commit is enabled (in the
file) then commits are now executed in the same order as the resources were
accessed by the transaction.

26240: Create Hibernate ConnectionProvider

We have added a Hibernate ConnectionProvider implementation to facilitate Hibernate 3.3+ configuration of the DataSource.

26398: Allow resume of transaction with status MARKED_ROLLBACK

It is now possible to resume a transaction after it was marked as rollbackOnly.

25809: Refactor MessageDrivenContainer to allow hot property change detection

The MessageDrivenContainer now allows (re)setting most of its properties after initialization.

Release Notes for ExtremeTransactions 3.4

21623: Include changes of 3.4 release of TransactionsEssentials

Included changes of TransactionsEssentials up to release 3.4.4

26712: License utility for ExtremeTransactions

Added license enforcement via license files

22444: Improve class loading

Improved class loading strategies to be more compliant with J2EE

24217: Remove lock file check (use new channel lock like in TransactionsEssentials)

There is no longer a need to create cumbersome .lck files upon startup

27365: Update documentation to explain new JMS

The documentation now mentions the new JMS capabilities

New as from Release 3.3.0

21737: Integrate Slf4jConsole

Integrated support for Log4J integration via SLF4J.

21799: Trmi UserTransactionServiceImp: add default value for REGISTER_SHUTDOWN_HOOK_PROPERTY_NAME

Added support for enabling/disabling shutdown behavior on VM exit, via a startup property.

21310: Change epoch directory to log directory

The epoch file now goes into the log directory instead of the output directory.

21311: Add and document threaded 2PC property

Added support for single-threaded commit via a startup property.

23397: Remove JAX-RPC examples

Removed JAX-RPC support (to be replaced by JAX-WS in the next release).

23442: UserTransactionServiceImp: version and product name are wrong

Corrected version and product metadata.

23329: Add high-resolution logo to docs

Improved resolution of logos in the PDFs.

21632: Update manuals for ExtremeTransactions

Updated manuals for ExtremeTransactions.

23319: Remove obsolete modules

Removed deprecated application server integration modules such as JBoss, Tomcat and more.

23325: Update to 3.3 of TransactionsEssentials

Included all changes of the TransactionsEssentials 3.3.1 core.

Known Issues

The following are known issues for this release: Please also check the forums for more up-to-date information on known issues.

New as from release 3.2.2

Bug fixes:

22436: RMI export/import: properties are not included?

RMI export/import: fixed a bug where properties were not included - leading to an independent root transaction on the importing side.

22437: RMI demos: don't work if rebuilt?

Fixed build.xml for j2se demos so that rebuild doesn't make the RMI demos crash.

22440: RMI demo fails: non-xa datasource incompatible with sibling transactions

Changed the RMI Client class to NOT call the portal twice in the same transaction.

New as from Release 3.1.1

New features: Bug fixes:

New as from Release 3.1.0

Added features:

Upgrade Guidelines For Users of Transactions 2.x

Users of the RMI/IIOP functionality in the Transactions 2.x editions should take the following changes into account. Due to refactoring, this product will not work as a drop-in replacement for the 2.x series.

Configuration changes

The value of the startup property com.atomikos.icatch.rmi_export_class MUST be set in your startup properties, or RMI/IIOP transactions will not be available (this features was enabled before, but is now disabled by default to make the software easier to use in most of the practical scenarios). See the sample properties file included in the release for possible values of this property.

The properties file can now also be called '' instead of just ''. Extra properties were added to support new features (see the sample properties file included in the release).

Moved from package com.atomikos.icatch into package com.atomikos.icatch.config:

Moved from package com.atomikos.icatch into package com.atomikos.icatch.system:

Other changes

Included from Release 2.1x