Class AbstractJiniTransactionManager

java.lang.Object
org.springframework.transaction.support.AbstractPlatformTransactionManager
org.openspaces.core.transaction.manager.AbstractJiniTransactionManager
All Implemented Interfaces:
Serializable, JiniPlatformTransactionManager, ServiceDetailsProvider, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.transaction.ConfigurableTransactionManager, org.springframework.transaction.PlatformTransactionManager, org.springframework.transaction.TransactionManager
Direct Known Subclasses:
DirectJiniTransactionManager, DistributedJiniTransactionManager, LookupJiniTransactionManager

public abstract class AbstractJiniTransactionManager extends org.springframework.transaction.support.AbstractPlatformTransactionManager implements JiniPlatformTransactionManager, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.BeanNameAware, ServiceDetailsProvider, org.springframework.beans.factory.DisposableBean
Base class for Jini implementation of Springs PlatformTransactionManager. Uses Jini TransactionManager in order to manage transactions with sub classes responsible for providing it using doCreateTransactionManager().

Jini transactions are bounded under the setTransactionalContext(Object) using Springs TransactionSynchronizationManager.bindResource(Object, Object). The transactional context is optional and defaults to the Jini TransactionManager instance. Note, this can be overridden by sub classes.

By default the transaction timeout will be 90 seconds. The default timeout on the transaction manager level can be set using AbstractPlatformTransactionManager.setDefaultTimeout(int). If the timeout is explicitly set using Spring support for transactions (for example using TransactionDefinition) this value will be used.

Author:
kimchy
See Also:
  • Field Details

  • Constructor Details

    • AbstractJiniTransactionManager

      public AbstractJiniTransactionManager()
  • Method Details

    • setBeanName

      public void setBeanName(String beanName)
      Specified by:
      setBeanName in interface org.springframework.beans.factory.BeanNameAware
    • getBeanName

      public String getBeanName()
      Specified by:
      getBeanName in interface JiniPlatformTransactionManager
    • getTransactionalContext

      public Object getTransactionalContext()
      Description copied from interface: JiniPlatformTransactionManager
      Returns the transactional context the jini transaction is bounded under (usually using Spring synchronization which is based on thread local).
      Specified by:
      getTransactionalContext in interface JiniPlatformTransactionManager
    • setTransactionalContext

      public void setTransactionalContext(Object txResource)
    • setCommitTimeout

      public void setCommitTimeout(Long commitTimeout)
      Sets an optional timeout when performing commit in milliseconds. Default: DEFAULT_TX_COMMIT_TIMEOUT.
    • setRollbackTimeout

      public void setRollbackTimeout(Long rollbackTimeout)
      Sets an optional timeout when performing rollback/abort in milliseconds. Default: DEFAULT_TX_ROLLBACK_TIMEOUT.
    • setLeaseRenewalConfig

      public void setLeaseRenewalConfig(TransactionLeaseRenewalConfig leaseRenewalConfig)
      Sets the transaction lease renewal configuration. Once set, transactions will be renewed automatically. If not set, no renewals will occur.
    • doCreateTransactionManager

      protected abstract TransactionManager doCreateTransactionManager() throws Exception
      Implemented by sub classes to provide a Jini TransactionManager.
      Throws:
      Exception
    • getTransactionManager

      public TransactionManager getTransactionManager()
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • destroy

      public void destroy() throws Exception
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean
      Throws:
      Exception
    • doGetTransaction

      protected Object doGetTransaction() throws org.springframework.transaction.TransactionException
      Specified by:
      doGetTransaction in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doBegin

      protected void doBegin(Object transaction, org.springframework.transaction.TransactionDefinition definition) throws org.springframework.transaction.TransactionException
      Specified by:
      doBegin in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doJiniBegin

      protected void doJiniBegin(AbstractJiniTransactionManager.JiniTransactionObject txObject, org.springframework.transaction.TransactionDefinition definition)
    • applyIsolationLevel

      protected void applyIsolationLevel(AbstractJiniTransactionManager.JiniTransactionObject txObject, int isolationLevel) throws org.springframework.transaction.InvalidIsolationLevelException
      Throws:
      org.springframework.transaction.InvalidIsolationLevelException
    • suppportsCustomIsolationLevel

      protected boolean suppportsCustomIsolationLevel()
    • doCommit

      protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus status) throws org.springframework.transaction.TransactionException
      Specified by:
      doCommit in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • isExistingTransaction

      protected boolean isExistingTransaction(Object transaction) throws org.springframework.transaction.TransactionException
      Overrides:
      isExistingTransaction in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doRollback

      protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus status) throws org.springframework.transaction.TransactionException
      Specified by:
      doRollback in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doCleanupAfterCompletion

      protected void doCleanupAfterCompletion(Object transaction)
      Overrides:
      doCleanupAfterCompletion in class org.springframework.transaction.support.AbstractPlatformTransactionManager
    • doSetRollbackOnly

      protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus status) throws org.springframework.transaction.TransactionException
      Overrides:
      doSetRollbackOnly in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doResume

      protected void doResume(Object transaction, Object suspendedResources) throws org.springframework.transaction.TransactionException
      Overrides:
      doResume in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • doSuspend

      protected Object doSuspend(Object transaction) throws org.springframework.transaction.TransactionException
      Overrides:
      doSuspend in class org.springframework.transaction.support.AbstractPlatformTransactionManager
      Throws:
      org.springframework.transaction.TransactionException
    • useSavepointForNestedTransaction

      protected boolean useSavepointForNestedTransaction()
      Overrides:
      useSavepointForNestedTransaction in class org.springframework.transaction.support.AbstractPlatformTransactionManager
    • convertJiniException

      protected RuntimeException convertJiniException(Exception exception)
    • logMessage

      protected String logMessage(String message)