This is the first stable customer release on the 3.9.x branch, containing ports of the following fixes from earlier releases.

Available to customers only. Want to become a customer?

Send me a quote

87749: Support short properties in JDBC and JMS connectors

We've improved support for short properties that need to be converted from a text/XML configuration file.

75549: Optimize JTA performance

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.

68724: Memory leak in the JDK's ObjectOutputStream

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.

102827: Errors on close/delist lead to connection pool exhaustion

Fixed a critical bug where errors on delist would cause connection pool exhaustion.

84851: Avoid logging overhead and warnings for empty transactions

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.

107901: Avoid heuristic hazard state for recovered 1PC committing transactions

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.

99070: NPE in SessionHandleState at line 301

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.

92227: Mockito must not be a transitive dependency

Fixed polluting Mockito dependency in the poms.

107634: Fix zip file for ExtremeTransactionsForMaven: remove top 2 directory folders

Removed top-level folders that make unzipping to artifactory impractical.

91931: Small correction to improve log output in connection pool

Improved logging during init of the connection pool.

105547: Timeout of active transaction generating too much log content

We now avoid generating too much log content for timeouts.

72744: Does max_actives also take recovered coordinators into account?

Fixed a condition where recovery could lead to out-of-memory errors.

84252: Hide warning on forceCloseAllPendingStatements

The logging noise in JDBC has been reduced significantly.

84253: Log warning in !XAResourceTransaction if errors on prepare

Added warning to the log if prepare yields errors.

86779: Add optional property to NOT set timeout on XAResource so Oracle errors are avoided on recovery

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.

81146: Support vendor-specific flags on XAResource

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.

102830: Avoid logging user names and passwords in plain text

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.

89815: 3.8 release: avoid Class.forName in logging for OSGi compatibility

Improved handling of class loading to be consistent in OSGi with the rest of the code base.

91579: Cannot instantiate JmxTransactionService in OSGi

Fixed JMX to work in OSGi too.

84253: Log warning in XAResourceTransaction if errors on prepare

Added warning to the log if prepare yields errors.

91719: UserTransactionFactory (JNDI): return UserTransactionManager rather than UserTransaction

This should make out-of-the-box integration with Tomcat and Spring easier.

96003: Bug in JmsSenderTemplate: for unanticipated exceptions during send, connections are not returned to pool?

Improved the way that unexpected errors are dealt with: the connections should be closed in those cases also.

86014: This UserTransactionManager instance was closed already

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.

89030: Deadlock in JMS connection pooling mechanism

Removed synchronization issues among concurrent threads that could cause a deadlock.

93853: SingleThreadedJmsSenderTemplate does not recover from session error?

This should now also be fixed.

95466: Deadlock in transactions-messaging

Fixed a deadlock situation during shutdown.

80653: Enlisting two XAResources via JTA API fails for same backend

Checking for enlisted XAResources has been relaxed to allow more use cases than before.

95823: XAResourceTransaction.refreshConnection fails after recovery

Fixed a bug where hazard XA branches could not terminate due to connectivity failures after restart.

95886: CoordinatorImp.recover() returns false in the wrong cases

Improved the way recovery diagnoses itself - to avoid unnecessary log warnings.

85463: Bug in checkpointing: the last image flushed is not taken into account

This has been fixed.

84252: Hide warning on forceCloseAllPendingStatements

The logging noise in JDBC has been reduced significantly.

84253: Log warning in XAResourceTransaction if errors on prepare

Added warning to the log if prepare yields errors.

80464: Error on shutdown of MessageDrivenContainer

Improved shutdown procedure to wait for any listener threads to exit first. This should avoid ugly shutdown warnings and improve overall shutdown.

83599: MessageDrivenContainer: add receiveTimeout property

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.

72990: Exception on timeout of coordinator

Corrected NullPointerException bug on recovery of certain transaction states.

73406: WG: Atomikos crashes VM when connection to MQSeries server breaks

Added workaround for MQSeries memory leak when connectivity to the broker goes down.

73193: Log warning if pool shuts down with connections in use

We now log a warning if a connection pool is shutdown while some connections are still being used.

73729: Connection recycling bug in JMS

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.

73756: Bug in MessageConsumerSession

Improved the retry/refresh logic when the JMS backed is unreachable.

72518: Bug in AbstractJmsSenderTemplate if destionationName set

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.

71264: Delay close of JMS vendor session until pending transaction is done

Fixed a bug where closing a JMS session would also close the underlying vendor session, leading to problematic rollback/commit.

71400: CoodinatorImp: improve logging

Improved logging of non-recoverable coordinators to help diagnose problems.

71748: Timer thread causes threading errors on MQSeries JMS

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.

85290: Missing folders in 3.7.0 release

Corrected the documentation: removed obsolete references to folders that no longer exist in the 3.7 release.

85291: START_HERE refers to wrong team page

Corrected the link to the Atomikos team page in the release documentation.

85796: NPE when JMS server not reachable (using SingleThreadedJmsSenderTemplate)

This bug has now been fixed.

86040: Port fix for 80464

Ported fix for case 80464 - error on shutdown of MessageDrivenContainer.

86041: Port fix for 83599

Ported fix for case 83599: MessageDrivenContainer - add receiveTimeout property.

86090: TransactionsEssentials guide still refers to old OraXidFactory

Removed obsolete reference to OraXidFactory in the docs.

74730: RMI examples missing in 3.7.0 release

Added the RMI examples - missing in the 3.7.0 release.

Available to customers only. Want to become a customer?

Send me a quote

Contact Us

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

T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2020 Atomikos BVBA | Our Privacy Policy
By using this site you agree to our cookies. More info. That's Fine