ExtremeTransactions 4.0.0 [UNDER DEVELOPMENT]


148495: Move methods from deprecated TransactionControl to CompositeTransaction and remove TransactionControl

The TransactionControl interface has been removed from our API and its remaining functionality has been merged into the CompositeTransaction interface.

70515: Participant: refactor from Dictionary to Map

The Map is cleaner at API level (not a JDK implementation class).

142795: Optimisation for concurrent load with TemporaryXATransactionalResource

Added a contributed improvement for dynamically registered XAResource instances so we avoid race conditions under high load.


116801: Redesign recovery to avoid serialising participants so we keep memory usage low and minimize heuristic overhead

We now avoid serialisation with our brand-new recovery implementation.

135128: Separate OLTP logic from restart/recovery logic to simplify the transaction states and handlers

OLTP logging and restart/crash recovery logic are now separated, which simplifies the transaction state handlers and puts us on the road to improved compatibility with cloud deployments.

87768: Configurable wait timeout during shutdown

Shutdown used to be binary: either you waited for active transactions to finish, or not. We've now added an option of specifying a timeout in milliseconds. The system will wait for active transactions to finish within the specified delay, and resort to forced shutdown after that.

147733: Removed write-ahead logging extension module

For now, this module is no longer compatible with the new logging/recovery and has been removed. Later on, we'll consider the equivalent for the new logging mechanism.

148219: Dynamic XAResource registration: use hashCode rather than toString to generate a resource name

We changed this in an attempt to make resource names more unique. A more profound solution will be available in a later release, when we improve dynamic resource registration.

116270: Ported fix to community edition

Fixed a bug reported in this forum post: http://fogbugz.atomikos.com/default.asp?community.6.3133.0

135325: Remove HeuristicMessage support

This feature is no longer needed in our modernised code base so we have removed it.

135349: Make build work with JDK 7/8

The build now works on/with the latest JDK versions.

136943: PropertyUtils should support all Java primitive types

All built-in primitive types are now supported.


127224: Use the new RecoveryScan utility class for XA recovery


117665: one big zip file for all demos/examples so administration is easier

We've added one big zip file for all demos - this is simpler to handle for everybody.

117091: remove license checking mechanism

The license checks have been removed to alleviate administrative overhead for everybody.

116968: re-enable and fix OSGi examples in build

The OSGi examples are now included again. Previously, they were excluded because the build used to fail on them.

117662: TCC/REST coordinator service emits Content-type instead of Accept header

Our coordinator service implementation did not properly set the Accept header when confirming a participant service. This has been fixed.

117742: refine UserTransactionManager behavior after close - for increased usability

The following methods are sure to be allowed after close: rollback, setRollbackOnly, suspend, resume.

117362: added documentation section on transaction events

Documented the event mechanism (in the PDF guide covering the API).

117090: added easy way to launch a coordinator server for TCC

It is now possible to quickly launch a coordinator server from the TCC demos so you can easily test your own participant services for compliance.


116759: included community fixes from 3.9.0-3.9.3

See ExtremeTransactions 3.9.3 for details.

116758: example for Hibernate 4 integration

Added runnable example to demonstrate Hibernate 4 integration.

115604: increase logging level to ERROR for errors in beforeCompletion Synchronization callbacks

The log level has been increased to avoid losing time chasing errors that happen during beforeCompletion and prevent committing the transaction.

116649: hibernate4 support: Atomikos JTAPlatform

We now support hibernate 4 in an easy way, as demonstrated by the corresponding new examples.

94676: avoid writing and maintaining .epoch file

We now avoid writing .epoch files for increased flexibility and usability.


TCC / REST support

We've replaced our existing web services and SOA support by the long-awaited TCC for REST support. This was implemented as a plugin module around the core.

Split JMX support into transactions-jmx and transactions-jmx-jta

JMX support is now divided across 2 modules; one transactions-jmx (core) module and also transactions-jmx-jta for specifics relevant to JTA.

Refactored core towards extensible plugin architecture

The core is now an extensible transaction service with optional plugin extensions looked up in the classpath (via the ServiceLoader mechanism).

Renamed TSListener interface to TransactionServicePlugin

The TSListener interface has been refactored and renamed to be the main plugin interface for our new core architecture.

Redesign of init property lookup

Initialization properties are now resolved in the following order (for inspiration from the community, see this forum post):

  • defaults are loaded from the classpath
  • any overrides from transactions.properties (if found in the classpath) are applied
  • any overrides from jta.properties (if found in the classpath) are applied
  • any overrides in a properties file specified by the optional system property com.atomikos.icatch.file are applied
  • any overrides set in a programmatic way are applied
  • any overrides set a system properties are applied
  • placeholder substitution is done for the resulting set of properties

JTA and RMI support are now plugin modules loaded from the classpath

In order to activate JTA or RMI functionality, it now suffices to put these modules (jars) in the classpath and they will be discovered automatically during startup of the core. Other modules (like REST support) will later be added in the same way.

Removed SubTxThread functionality

This functionality seemed a bit exotic to carry on in our codebase, so we've optimistically removed it for now. Should there be compelling use cases to add them again, we will do so at a later time. Most of our user base adheres to the JTA/JDBC/JMS API and will not be affected at all by this removal.

89208: improved constructor for RemoteClientUserTransaction

Added a new constructor that accepts the ConfigProperties as parameter. This allows reuse of config parameters that are looked up by the core startup.

112934: distributed RMI recovery fails with dataserializable

This has now been fixed.

23765: deprecate Swing beans package

We no longer need Swing libraries: these have long been replaced by JMX support.

112579: fixed support for com.atomikos.icatch.enable_logging=false

Disabling transaction logging now works again.

112646: enable backward compatibility of sessionTransacted behavior

Legacy applications/configurations that expect the 'old' behavior of our JMS sessions (determined by the sessionTransacted flag passed upon session creation) can now re-enable this behavior by setting the ignoreSessionTransactedFlag on the Atomikos connection factory to false.

112579: com.atomikos.icatch.enable_logging is ignored

This setting got ignored in the 3.9 release, meaning there was no way to turn logging off - this has now been fixed.

112651: old release notes html file in evaluation download

The evaluation download contained old release notes - these have been removed. Release notes are now online only.

112681: transactions-jmx module missing in evaluation download

The new transactions-jmx was missing in the zip file for the evaluation download.

Contact Us

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

E info@atomikos.com
E sales@atomikos.com
T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2016 Atomikos BVBA