Release Notes for TransactionsEssentials 3.5.8
33395: Epoch file empty after shutdown
Sometimes a crash would corrupt the epoch file - this has now been fixed.
30347: Change build files to upload in our maven repo structure
We now upload releases to our online maven repository.
33703: Deadlock in JMS
Fixed a deadlock occurring in non-JTA/XA use of our JMS.
33794: Logfile corrupted exception to catch
Improved exception handling in case of corrupted log files - see http://fogbugz.atomikos.com/default.asp?community.6.866.1
31037: Epoch file corrupted after crash
Added a sync call upon writing the epoch file.
33674: Invalid XAConnections are not removed from the pool
Fixed a bug in testing XAConnections - see http://fogbugz.atomikos.com/default.asp?community.6.853.0
33702: MessageConsumerSession: catch Throwable to better avoid thread exit?
Improved exception handling in the JMS listener thread.
Release Notes for TransactionsEssentials 3.5.7
32251: Set transaction isolation level on DataSource
Corrected bug: when the selected default isolation level is not supported by the native JDBC driver then an exception should be thrown rather than just a log warning generated.
32800: Bug in connection pool reaping logic
The reap logic did not correctly take into account the acquisition time.
32801: Thread blocked on java.util.logging.ConsoleHandler
Improved performance by checking the SLF4J log level to avoid unnecessary synchronization issues.
Release Notes for TransactionsEssentials 3.5.6
32251: Set transaction isolation level on DataSource
It is now possible to specify a default isolation level on the main datasource classes.
32252: Make AtomikosJTATransactionFactory compatible with Hibernate 3.2.6
Added a fix for correct configuring of the Hibernate properties. See this forum post for the report (thanks to Les Walker): http://fogbugz.atomikos.com/default.asp?community.6.779.0
Release Notes for TransactionsEssentials 3.5.5
30394: Generate log warning if old JDBC/JMS connectors are used
When you configure the deprecated drivers, you will now get a warning in the console log file.
30897: Add product version to the logs during startup
The product version is now written into the console log file during startup.
30979: XAResourceTransaction: improve logging
We now write the information to the console file before doing the XA calls. This improves diagnostics in case of exceptions.
31037: Epoch file corrupted after crash
Added a sync call upon writing the epoch file.
31209: XAConnection not refreshed during commit
Bouncing the back-end did not recover XAConnections and consequently made pending commits go into heuristic hazard state when there was no real need to do so.
31275: Forced close of statement should also remove the statements
When statements were closed upon timeout/rollback, the closed statements were not removed from the list of past statements, causing many 'close' warnings in the logs. This has now been fixed.
30664: ConcurrentModificationException when forcing statements to close
Added synchronization to avoid concurrency effects.
30752: NonXADataSource connection interference
There was a bug in (re)setting the autoCommit mode of a non-xa connection, causing it to be set when a connection was already being reused under high loads. This in turn led to repeated heuristic commit errors for the reusing transaction. Both problems have now been fixed.
30199: Improve warnings and docs if sessionTransacted=false
Improved diagnostic warnings to clarify the consequence of using non-transacted sessions.
Release Notes for TransactionsEssentials 3.5.4
29708: Statements reusable in autoCommit mode after transaction timeout
Statements that were opened inside a transaction would still be usable in autoCommit mode after the transaction timed out. This has been fixed by closing all remaining statements on timeout of the transaction.
29251: Resource already registered using JMS
Corrected a JMS initialization bug as suggested in the forums: http://fogbugz.atomikos.com/default.asp?community.6.460.3
Release Notes for TransactionsEssentials 3.5.3
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.
27885: QueueConnectionFactoryBeanBeanInfo inconsistent: xidFactory
The xidFactory attribute had been removed from the bean class but not from the bean descriptor; this is now fixed.
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.
28623: Jms connection pooling bug
Fixed a threading issue reported in the forums: http://fogbugz.atomikos.com/default.asp?community.6.506.0
28388: Resource already registered using JMS
Fixed a bug in the JMS JNDI mechanism - for details see this forum post: http://fogbugz.atomikos.com/default.asp?community.6.460.1
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 TransactionsEssentials 3.5.2
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 jta.properties file was wrong - this has been corrected.
Release Notes for TransactionsEssentials 3.5.1
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: http://fogbugz.atomikos.com/default.asp?community.6.411.0
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.
Release Notes for TransactionsEssentials 3.5
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 jta.properties
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 TransactionsEssentials 3.4.4
26380: AtomikosDataSourceBean fails if DB down initially
Fixed pool start-up resilience to DBMS unavailability.
Release Notes for TransactionsEssentials 3.4.3
26005: Closing connection factory does not close all connections
Now the JDBC and JMS connectors behave better when closed: they will also close the resources for recovery - meaning that all connections should be cleaned up.
Release Notes for TransactionsEssentials 3.4.2
25671: Recovery interferes with active enlist/delist
Improved handling or recovery interleaved with active transaction processing.
25758: Improve class loading for OSGI
Added extra strategy for loading proxy classes and interfaces, as suggested by http://fogbugz.atomikos.com/default.asp?community.6.317.7
25678: JDBC Connection not refreshed on errors during enlist
Corrected a bug where enlist failures (such as lost connectivity to back-end) would cause recurring connection problems in the pool.
24532: AtomikosNonXADataSourceBean degraded performance
Optimized dynamic proxy handling to avoid JDK overhead.
Release Notes for TransactionsEssentials 3.4.1
23722: NonXaDataSource: add readOnly feature
Instances of the datasource can now be marked as 'readOnly', in which case the exceptions upon recovery should go away.
24883: Spring JMS bank demo does not work (blocks on createConsumer for activeMQ)
Fixed blocking problem in the Spring/jms/ActiveMQ sample.
25010: java.util.ConcurrentModificationException
Fixed concurrency problem in JDBC.
25033: Timeout overflow problem
Fixed timeout overflow for large integers.
25131: JMS deprecated jars not included in download
Added inclusion of the 'deprecated' JMS jars in the download.
25222: Oracle AQ workaround for new JMS
Added Oracle JMS patch code.
25223: Memory leak in 3.4 JMS
Improved closing of sessions in the new JMS facilities.
Release Notes for TransactionsEssentials 3.4
This release mainly focuses on improved JMS support with better JMS 1.1 compatibility and JMS connection pooling.
Details are listed below...
24531: Bridge class missing
The Bridge classes in package com.atomikos.jms have been dropped - this functionality can easily be implemented in the application layer.
22186: Solve Hibernate 3.2.6 incompatibility (with Hibernate 3.3 additions)
Hibernate 3.3 and higher are now supported.
23976: xaProperties in JDBC/JMS: default to EMPTY properties, not null
The default value for the xaProperties in JMS and JDBC is now an empty set of properties.
23951: AtomikosDataSourceBean: add setXaDataSource(XADataSource xaDS)
It is now possible to configure the datasource with a pre-configured XADataSource instance.
23790: Improve error messages: centralize exception codes
Improved exception error codes/messages.
24683: patch for Oracle
Added support for Oracle's proprietary close(...) methods.
24560: Add ConcurrentJmsSenderTemplate class
Added support for multi-threaded managed JMS sessions.
23370: Implement connection recycling
Improved connection reuse within the same transaction.
22105: Support commit after close in JMS
Added support for commit-after-close in JMS.
24076: Add default transaction timeout property
Added default transaction timeout startup property.
24005: Default reapTimeout to 0 to avoid reaping when not anticipated
Reaping is now disabled by default. This improves the expected behavior of the pool.
24069: AtomikosConnectionFactoryBean: add setXaConnectionFactory method
It is now possible to configure the new JMS connection factory with a pre-existing XAConnectionFactory instance.
23877: JDBC proxy: rethrow vendor SQLException where possible
Improved reporting of native SQLException messages.
23878: JMS proxies: rethrow vendor JMSException where possible
Improved reporting of native JMSException messages.
23866: Implement new MessageProducerSession
The MessageProducerSession class has been refactored and is now implemented as the JmsSenderTemplate classes in package com.atomikos.jms.extra.
23868: Implement new MessageConsumerSessionPool
The MessageConsumerSession and MessageConsumerSessionPool have been refactored into class MessageDrivenContainer in package com.atomikos.jms.extra.
24502: loginTimeout not passed on to driver
The loginTimeout for JDBC is now passed on correctly to the underlying JDBC driver.
23953: Throw meaningful exception after reaping connection(s)
Using a connection after it's been reaped will now give a better error message.
24567: Not ending transaction (set implicit transaction off)
For non-xa use we now restore the autoCommit setting to the value before it had before a JTA transaction was started.
24689: Logging not conform to J2EE
Improved logging level of startup properties.
24565: OverlappingFileLockException instead of IOException for file channel lock
Better handling of overlapping locks on the log files.
22342: Implement new connection factories for JMS
Added pooled connection support for JMS.
22972: Support non-JTA JMS commits
Allow local (session-level) commits in JMS.
Release Notes for TransactionsEssentials 3.3.5
24394: Reaper reaping prematurely
Corrected initialization of the reap settings to avoid improper reaping.
24566: Wrong java code in jdbc.nonxa.AtomikosThreadLocalConnection
Fixed bug in handling of method calls on a stale handle.
Release Notes for TransactionsEssentials 3.3.4
23844: ClassLoader problem for nonxa JDBC in Tomat
Improved class loading for dynamic proxies.
24246: Catch RuntimeExceptions thrown in Synchronization
Improved exception handling in synchronizations.
Release Notes for TransactionsEssentials 3.3.3
23610: Include changes of latest 3.2.x
Included latest changes of the 3.2.x branch.
23658: Close JDBC vendorconnection when SessionHandleState is terminated.
Underlying JDBC statements are now cleaned up when a connection is put back in the pool.
Release Notes for TransactionsEssentials 3.3.2
22111: Lock file channel instead of lock file for logs
Improved startup protection - thanks to Allen Yu.
23250: Add new pool classes (datasource.pool) to the packaging in the download build file
The build.xml in the download folder now also accounts for the new pool classes.
22615: JNDI lookup of DataSource: make it possible to do this out-of-VM
The JDBC datasource can now be looked up in another VM than the one it was bound in (provided that a remotely accessible JNDI registry is used).
23539: Resource leaking in Console
Corrected rotating file console house-keeping (thanks to Allen Yu).
23251: Add transactions-essentials-all.jar to download zip file
The transactions-essentials-all.jar is now also included by default in the download zip file.
23334: clean up prepared tx if disk full
Improved handling of prepared transactions in case the disk is full and further logging fails during commit.
23485: release 3.3.1 and jndi with jdbc beans
We now allow JNDI references to be looked up before the datasource is initialized.
Release Notes for TransactionsEssentials 3.3.1
23091: Make console log level case insensitive
The console log level is now case insensitive.
23146: merge-in changes from 3.2.4
Included changes from 3.2.4
23180: Slf4J check: log exception instead of ignoring it? (3.3.0)
Exceptions related to log4j integration are now logged.
23184: ClassLoaderHelper doesn't fallback to Class.forName()
Improved class loading.
23185: Cosmetic logging bug in connection pool
Improved logging in connection pool.
23020: AtomikosNonXADataSourceBean: improve logging
Improved logging of configuration parameters.
23021: AtomikosDataSourceBean: pending comma in logging
Improved logging of configuration parameters.
23022: START HERE page refers to old URL for wiki
Updated START HERE page to refer to new website.
Release Notes for TransactionsEssentials 3.3
Release 3.3 is special in the following main things:
- Refactored JDBC support: the new DataSource implementations are now com.atomikos.jdbc.AtomikosDataSourceBean and com.atomikos.jdbc.nonxa.AtomikosNonXADataSourceBean - the previous datasource implementations are now deprecated and will eventually be left out of the distribution.
- Log4J integration: via SLF4J, you can now send the logging output to log4j as well.
- Better Spring configuration: you can now also configure the non-standard features like our JMX LogAdministrator or the init properties.
- Better handling of recovered hazard transactions.
- Solved problems with ShutdownHook and shutdown of the VM.
The full and detailed list of changes is below...
21755: Remove warning: 'depending on license, feature disabled'
Removed obsolete comment on license restrictions.
21733: Show linked exception for JMS
Improved logging in case of JMSException instances - now we also try to log the linked exception.
21519: Disable shutdownhooks on shutdown
Shutdown hooks now disable themselves on shutdown.
21554: Add JmxLogAdministrator on JDK 1.5 or higher
Simplified and documented JMX administration setup.
20430: ConnectionPool: create connections when needed, not at startup
The connection pool now creates connections when needed instead of at startup (can be overridden by setting the minimum pool size to the desired value).
20638: Include redesigned JDBC
Redesigned and improved JDBC support.
21256: Detect connection passing over tx boundaries
Connections can now be passed across transaction boundaries if desired.
21316: Include DB2 XA fix
Fixed incompatibility with DB2 (see http://www.atomikos.com/Documentation/KnownProblems#IBM_DB2_Incompatibility).
21317: Improve connection pool with shrinking support
The connection pool can now also shrink in size.
21319: SimpleDataSourceBean: eliminate GUI classes dependency
Improved SimpleDataSourceBean for headless servers.
21453: Configure shutdown hook behaviour
You can now configure whether VM shutdown forces transaction core shutdown with the init parameter com.atomikos.icatch.force_shutdown_on_vm_exit - defaults to false.
21487: Implement connection reaping
Connection reaping is now also supported by the JDBC pooling.
21797: Add init method to MessageProducerSession
Added init method to com.atomikos.jms.MessageProducerSession.
21489: Min size for pool
The pool for JDBC connections now also supports a minimum size.
22429: Improve class loading
Improved class loading to be compliant with most J2EE platforms.
20558: Threads blocking (waiting and retry) when the connection pool is exhausted
The JDBC connection pool now also supports blocking the calling thread when the pool is exhausted. Special thanks to Mehdi Bennani.
20115: Log4j integration
Added Log4J support for the diagnostics.
21712: Heuristic hazard logs repeated timeouts
Improved handling of heuristic hazard transactions.
22115: AdminToolResourceBundle not found
Fixed lookup problem of the AdminToolResourceBundle for localized interface items.
22116: Build of spring examples fails in download
Fixed build of Spring examples in download samples.
20140: JDBC NonXa ConnectionProxy Incompatible with OpenJPA
OpenJPA incompatibility fixed: JDBC connection methods of class java.lang.Object no longer trigger transaction enlistment.
22118: Add startup property for .lck file to protect logs
Added startup property: com.atomikos.icatch.lock_logs (if set to false, there will be no .lck file that prevents startup).
22445: Fix javadoc comments
Improved javadoc formatting.
22476: Factor out new (and old) JDBC into separate modules?
Created separate modules (jars) for JDBC support.
Release Notes for TransactionsEssentials 3.2.7
23364: Problem when recovery is called while active transactions exist
We now allow recovery to happen correctly if there are active transactions.
23719: TopicReceiverSessionPool: append subscriberName with thread number
To ensure uniqueness of subscriber names, these names are now suffixed with a counter for each pooled instance.
Release Notes for TransactionsEssentials 3.2.6
23629: MessageConsumerSession: show linkedException for receive errors
We now inspect the linked JMS error if present.
23642: Clean up log entry: getCompositeTransaction returning null
Improved log comments for the Atomikos core.
23645: Bug in 3.2.5 for durable subscriber
Fixed bug: the durable subscribers were not JTA-enabled.
Release Notes for TransactionsEssentials 3.2.5
23605: Support durable subscribers in MessageConsumerSession
Durable subscribers are now support for topics.
23608: Improve logging of hazard timeout problems
Logging was improved to show more details about the problem.
Release Notes for TransactionsEssentials 3.2.4
23119: QueueSenderSession does not refresh?
In some cases the JMS sender/producer session classes did not correctly refresh the underlying JMS session.
23120: JMS message producer: sending errors should be logged as warnings, not info
JMS sender/producer session: improved logging of warnings .
Release Notes for TransactionsEssentials 3.2.3
21806: Deadlock in core
Fixed deadlock on the (rare) case where the application thread registers a synchronization with the transaction, when a timeout thread attempts rollback concurrently.
21904: Avoid repeated logging for hazards
Improved timeout for heuristic hazard cases, to avoid excess logging and thread blocking.
21931: Bug in JMS session
Fixed close of intermediary JMS session - see http://www.atomikos.org/forums/viewtopic.php?p=2599
Release Notes for TransactionsEssentials 3.2.2
21666: DataSourceBean: remove checkSetup on close
DataSourceBean: removed checkSetup during close.
21705: Deadlock in core (observer callback during state transition)
Fixed problematic deadlock when a timed out transaction interferes with commit synchronization registration (in Spring).
21740: stopListening fails for JMS
Added a check for closed UserTransactionManager instances, so usage after close generates an exception.
Release Notes for TransactionsEssentials 3.2.1
21546: Add new logo in docs
Added new logo in PDF guides.
21542: DataSourceBeanBeanInfo has NPE
Corrected NullPointerException for DataSourceBean GUI configuration.
21552: Improve recovery of committed xa txs
Improved recovery of committed XA transactions.
21553: Error in heuristic hazard termination logic
Improved handling of recovered heuristic hazard transactions.
Release Notes for TransactionsEssentials 3.2
20653: Allow single-threaded 2-pase commit
You can now choose to disable multi-threaded two-phase commit by setting the startup property com.atomikos.icatch.threaded_2pc=false
20738: Refactor propagator logging
Refactored Propagator logging.
21309: Change epoch directory to log directory
The .epoch file is now saved in the same folder as the transaction logs.
20002: Test JDBC connections before use
Added testOnBorrow option for the JDBC DataSource implementations - setting this to true will test connection liveness before they are taken from the pool.
20224: Ant-style expansion in jta.properties
Values in the jta.properties file can now contain Ant-style references (${...}) to the values of other properties.
20112: setXaDataSource in SimpleDataSourceBean
SimpleDataSourceBean now offers setXaDataSource as an alternative way to configure the XADataSource.
20167: Generate warning if semicolon omitted
SimpleDataSourceBean now generates a log warning if the xaDataSourceProperties don't contain semicolons.
20168: Compile with debug flag (info)
The jars are now compiled with debug flag enabled.
20254: Add Lars' contribution for thread pooling
Threads are now reused based on class availability of the JDK thread pools (Java 5 or higher) or the concurrent backport utility (Java 1.4).
20545: ExclusiveExternalXAPooledConnectionImp: improve close logic
Connections can now be closed after commit.
20566: Change SimpleDataSourceBean: set exclusive mode as default
Simplified JDBC setup: exclusiveConnectionMode now defaults to true.
20700: Add logging to SimpleDataSourceBean
Added logging for SimpleDataSourceBean settings.
20701: Add logging to NonXaDataSourceBean
Added logging for NonXaDataSourceBean settings.
20710: ExternalXAPooledConnectionImp: remove obsolete method
ExternalXAPooledConnectionImp: removed obsolete method.
20091: Migrate CVS repository to SVN
The source code repository is now hosted online in SVN.
20634: Refactor AtomikosSQLException
Improved AtomikosSQLException support for nested exceptions.
21190: change console logs format
The format of the console logs is now easier to read and more conventional.
20617: ThreadLocalConnection bug
Improved handling of implemented interfaces in the JDBC connection proxy classes.
21183: Update samples with transaction timeout
The Spring JTA examples now also show how to set the transaction timeout.
21191: ConnectionPool: avoid getMetaData
The JDBC connection pools now avoid getMetaData() for testing connection liveness - if a validating query is set.
20140: JDBC NonXa ConnectionProxy Incompatible with OpenJPA
OpenJPA incompatibility fixed: JDBC connection methods of class java.lang.Object no longer trigger transaction enlistment.
20718: NPE on shutdown in Tomcat
Added a workaround to avoid NullPointerException in the JDBC DataSource classes on Tomcat shutdown of webapp.
20371: Include test jars in test release
The test jars are now included in the test suite.
Pre-3.2 Release Notes
Bug fixes:
- 20744: Destination argument ignored in DefaultJtaMessageProducer
Bug fixes:
- 20512: Improved handling of nested exceptions by the log files
- 20221: Included missing Oracle JDBC drivers
Added features:
- 20188: Log warning message if transaction timeout exceeds maximum allowed
Bug fixes:
- FIXED 10108: default value for timeouts in docs
- FIXED 10121: JNDI bean factory for Tomcat 5.5
- FIXED 10120: Problem with oracle access to 2 schemas
- FIXED 10119: stack trace eaten in JDBC
- FIXED 10118: increase default max_timeout in jta.properties
- FIXED 10117: More info on XA error codes
- FIXED 10112: better documentation of timeout settings
- FIXED 10100: IllegalStateException on Timeout
- FIXED 20130: Improve error message: "No transaction for thread"
- FIXED 20015: Removed obsolete classes: XAPooledConnectionImp and ExclusiveXAPooledConnectionImp (both in package com.atomikos.jdbc)
- FIXED 20016: Removed obsolete class: AbstractConnectionFactory (in package com.atomikos.jdbc)
Bug fixes:
- Fixed 10111: Branching bug for Oracle
- Fixed 10107: UnsupportedOperationException with Glassfish
- Fixed 10104: Duplicate TID
Bug fixes:
- Fixed 10103: JMS transacted mode not ignored in JTA transaction
- Fixed 10102: Connection.close fails when called after commit/rollback
Bug fixes:
- Fixed 10099: IBM MQSeries connection overflow
- Fixed 10098: Shutdown race condition
Bug fixes:
- Fixed 10095: added workaround for OracleAQ XA bug
- Fixed 10093: improved configuration for OracleAQ
- Fixed 10091: improved lookup of transactions properties file in J2EE (web) applications
Added features:
- 1013: ExceptionListener support in the JMS managed consumer sessions
- 1011: JMS 1.1 support
- 1010: Topic XA support for JMS (sponsored by Webtide)
- 1009: UserTransactionManager now allows setting the automatic startup preference for the core
- 1003: Improved support for Spring (init+close methods on UserTransactionManager, IOC improvement of UserTransactionService)
- 1004: hibernate2 support included
- 1006: hibernate3 support included
Bug fixes:
- Fixed 10088: TemporaryXATransactionalResource name too long
- Fixed 10087: build of demos fails
- Fixed 10085: NonXaDataSourceBean JNDI lookup fails
- Fixed 10084: QueueReceiverSession restarts core after shutdown
- Fixed 10082: QueueReceiverSession threads not daemon
- Fixed 10081: Synchronizations added too much logging overhead
- Fixed 10080: Using jTDS driver throws exception
- Fixed 10079: shutdown(false) may block if intermediate recovery
- Fixed 10077: Log already in use: disable exception if logging is disabled
- Fixed 10066: SysException nested stacktrace not in log
- Fixed 10065: NPE when Oracle is not configured for XA
- Fixed 10058: demo scripts not UNIX compatible
- Fixed 10050: enum prevents compilation with JDK 1.5
Several bug fixes:
- Fixed bug 10038: JMS demo programs don"t shutdown cleanly
- Fixed bug 10039: NullPointerException in com.atomikos.beans.PropertyImp
- Fixed bug 10040: Useless recoverParticipant method
- Fixed bug 10041: NullPointerException with recovery disabled
Atomikos TransactionsEssentials Release 3.0 is a major redesign of Atomikos Transactions, meaning that it will not work as a simple drop-in
replacement for earlier releases. When upgrading to 3.0, the following changes should be taken into account.
Configuration changes
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 demo properties file included in the release).
Moved from package com.atomikos.icatch into package com.atomikos.icatch.config:
- TSMetaData
- UserTransactionService
- UserTransactionServiceFactory
- UserTransactionServiceImp
- TSInitInfo
Moved from package com.atomikos.icatch into package com.atomikos.icatch.system:
- Configuration
- SubTxThread
- Waiter
Other changes
- Added method getLevel to interface com.atomikos.diagnostics.Console
- Added method getSuperiorRecoveryCoordinator to interface com.atomikos.icatch.TransactionService
- Interface com.atomikos.icatch.Participant now has an extra method getURI
- Interfaces com.atomikos.icatch.CompositeTerminator and com.atomikos.icatch.TransactionControl are now
deprecated; their methods have been merged into com.atomikos.icatch.CompositeTransaction
- Interface com.atomikos.icatch.Extent now maps string-based URIs to Integers
- Interface com.atomikos.icatch.RecoveryCoordinator has an extra method getURI
- Interface com.atomikos.icatch.ExportingTransactionManager now also throws RollbackException
- Fixed bug 10026: getTags of com.atomikos.icatch.CompositeCoordinator would sometimes return a null element in the array
- Fixed bug 10028: recovery before recovery service registers
- Fixed bug 10030: deadlock during recovery
- Fixed bug 10031: XATransactionResource already closed
- Fixed bug 10032: QueueConnectionFactoryBean not referenceable
- Fixed bug 10033: System.out.println in QueueConnectionFactoryBean
- Fixed bug 10034: JMS bridge commits on receive error
- Fixed bug 10035: Synchronization.afterCompletion gets COMMITTED
- Fixed bug 10036: shutdown(false) hangs if called during recovery
- Fixed bug 10037: Log file in 12 hr format but with no AM/PM tag
- JMS message-driven transaction support: transactional message listeners
- JMS message bridge transaction support: reliable, exactly-once transfer of JMS messages even across queue domains
- Spring support (J2EE without EJB)
- Additional samples for JMS and Spring
- Our JMS QueueConnectionFactory now also supports non-transacted sessions
- The console files now support rotation and size limitation
- Several minor bug fixes
- JMS workaround for non-standard IBM MQSeries XAResource behaviour
- Refactored logging for improved reliability
- Bug fix: corrected NullPointerException in QueueConnectionFactoryBean.
- Leading and trailing spaces in JNDI/RMI related properties are now also ignored.
- Bug fix: corrected a multi-threading problem (during enlistment/delistment of XAResource instances)
that could happen if one Transaction was being used by
several concurrent threads.
- Vastly improved performance.
- Optional automatic resource recovery: XAResource instances can be recovered
as they are added to the transaction. This allows unregistered third-party resources
to be used while preserving recovery.
- Improved explicit recovery: resources can be registered after startup and will still be
recovered.
- New JDBC DataSource bean classes for improved application server compatibility.
- JDBC connections can now be used both inside and outside a transaction.
- Automatic startup and recovery of the transaction service when the JTA interfaces are used.
- New JTA implementations for J2EE use.
- The configuration file is now called "jta.properties".
- UserTransactionService: you no longer get an instance via the Configuration classes, but rather construct an instance directly: "new com.atomikos.icatch.UserTransactionServiceImp();" will do the job.
- TSInitInfo construction: you no longer use the Configuration class for this, but rather you call the method "createTSInitInfo()" on the UserTransactionService object.
- JdbcTransactionalResource: this class was moved to the new package com.atomikos.datasource.xa.jdbc
- JmsTransactionalResource: this class was moved to the new package com.atomikos.datasource.xa.jms
- SysException.printErrorStack() no longer exists. It has been replaced by an overridden implementation of printStackTrace().
- JTA Synchronizations: afterCompletion is called only once, instead of twice
in some cases.
- JTA: added tolerance for third-party application servers that don't delist
all XAResources before commit.
- Improved JMX administration tools.
- Added log levels for the tm.out file: by setting the property com.atomikos.icatch.console_log_level to either WARN, INFO or DEBUG you can get ever more output.