Class XACachedJmsTransactionManager
- java.lang.Object
-
- com.adaptris.xa.jms.transaction.XAJmsTransactionManager
-
- com.adaptris.xa.jms.transaction.XACachedJmsTransactionManager
-
- All Implemented Interfaces:
AdaptrisComponent,ComponentLifecycle,ComponentLifecycleExtension,LicensedComponent,TransactionManager,java.io.Serializable
@ComponentProfile(summary="Transaction manager that caches XAResources, so only enlists and delists once per transaction.", tag="transactions,jms") public class XACachedJmsTransactionManager extends XAJmsTransactionManagerTransaction manager that attaches any created transactions to the current thread.
Further, this transaction manager will ignore calls to enlist/delist resources that have already been enlisted for the current transaction. This attempts to increase performance by skipping enlisting and delisting when you using message batching (multiple messages per transaction).
You can further configure the transaction manager by adding a transactions.properties file to your classpath.
For this TransactionManager implementation you must set the following property in your transactions.properties file;
com.atomikos.icatch.automatic_resource_registration=true
A typical transactions.properties file will look like the following;
com.atomikos.icatch.automatic_resource_registration=true com.atomikos.icatch.max_timeout=3600000 com.atomikos.icatch.default_jta_timeout=3600000
The two timeout values above must be set to a value greater than the time it takes your consumer to begin a transaction, process messages and finally commit/rollback the transaction.
- See Also:
- Serialized Form
In the adapter configuration file this class is aliased as xa-cached-jms-transaction-manager which is the preferred alternative to the fully qualified classname when building your configuration.
-
-
Field Summary
-
Fields inherited from class com.adaptris.xa.jms.transaction.XAJmsTransactionManager
log
-
-
Constructor Summary
Constructors Constructor Description XACachedJmsTransactionManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbeginTransaction()booleancommit()voiddelistXAResource(java.lang.String xaResourceName, javax.transaction.xa.XAResource xaResource, int status)voidenlistXAResource(java.lang.String xaResourceName, javax.transaction.xa.XAResource xaResource)java.lang.BooleangetLogAdditionalInfo()voidrollback()voidsetLogAdditionalInfo(java.lang.Boolean logAdditionalInfo)static voidsetLOGGER(org.slf4j.Logger lOGGER)-
Methods inherited from class com.adaptris.xa.jms.transaction.XAJmsTransactionManager
close, deRegisterXAResource, getTransactionManager, getUniqueId, init, isEnabled, prepare, registerXAResource, setRollbackOnly, setTransactionManager, setUniqueId, start, stop, transactionIsActive
-
-
-
-
Method Detail
-
beginTransaction
public void beginTransaction() throws java.lang.Exception- Specified by:
beginTransactionin interfaceTransactionManager- Overrides:
beginTransactionin classXAJmsTransactionManager- Throws:
java.lang.Exception
-
delistXAResource
public void delistXAResource(java.lang.String xaResourceName, javax.transaction.xa.XAResource xaResource, int status) throws java.lang.Exception- Specified by:
delistXAResourcein interfaceTransactionManager- Overrides:
delistXAResourcein classXAJmsTransactionManager- Throws:
java.lang.Exception
-
enlistXAResource
public void enlistXAResource(java.lang.String xaResourceName, javax.transaction.xa.XAResource xaResource) throws java.lang.Exception- Specified by:
enlistXAResourcein interfaceTransactionManager- Overrides:
enlistXAResourcein classXAJmsTransactionManager- Throws:
java.lang.Exception
-
commit
public boolean commit() throws java.lang.Exception- Specified by:
commitin interfaceTransactionManager- Overrides:
commitin classXAJmsTransactionManager- Throws:
java.lang.Exception
-
rollback
public void rollback() throws java.lang.Exception- Specified by:
rollbackin interfaceTransactionManager- Overrides:
rollbackin classXAJmsTransactionManager- Throws:
java.lang.Exception
-
getLogAdditionalInfo
public java.lang.Boolean getLogAdditionalInfo()
-
setLogAdditionalInfo
public void setLogAdditionalInfo(java.lang.Boolean logAdditionalInfo)
-
setLOGGER
public static void setLOGGER(org.slf4j.Logger lOGGER)
-
-