What is new in BTM version 1.3
BTM underwent many changes for version 1.3. Here is a short summary of what's new and noteworthy.
Contents
New Features
JNDI provider
- The new JNDI provider and the new
jndiUserTransactionName config property.
Journal
- The new Null journal and the related
journal config property.
Recoverer
Resource loader
- The
bitronix.tm.resource.bind property is now useless and has been removed. - Resource creation failures don't block the transaction manager startup anymore and can be retried in the background witht he new
retryUnrecoverableResourcesRegistrationInterval config property.
Transaction manager
- No shutdown hook is registered anymore.
- Handling of unilateral resources rollback.
- Transaction termination can be directly controlled, no more need to use the TransactionManager interface.
- Per-resource timeout.
- Transactions are now marked as rollback only when a timeout happens.
- The new resources ordering algorithm and the new
twoPcOrderingPosition resource bean property. - The removal of the
bitronix.tm.timer.transactionRetryInterval config property.
Misc
- JMX can be disabled with the new
disableJmx config property.
Integration
Tomcat 5.5.x / 6.x
- A new class that plugs into Tomcat to maintain BTM's lifecycle (ie: startup / shutdown): btm-tomcat55-lifecycle.jar. Copy the jar to the $TOMCAT_HOME/server/lib folder then edit $TOMCAT_HOME/conf/server.xml and add this below the other lifecycle listeners: <Listener className="my.package.BTMLifecycleListener" />
Jetty 6.x
- A new class that plugs into Jetty to maintain BTM's lifecycle (ie: startup / shutdown): btm-jetty6-lifecycle.jar. Register it in your jetty.xml with a <Call name="addLifeCycle"> tag.
Upgrading from version 1.2
Checklist
- Old resource creation mechanism (ResourceBean.createResource()) has been removed.
- Get rid of the
bitronix.tm.resource.bind property in the resource loader's config file if present. - Get rid of the
bitronix.tm.timer.transactionRetryInterval config property if set. - Make sure you manually shutdown the transaction manager.
- CryptoEngine moved to bitronix.tm.utils package.