Class TransactionConfiguration

All Implemented Interfaces:
Matchable<TransactionConfiguration>, Updatable<TransactionConfiguration>

public class TransactionConfiguration extends ConfigurationElement<TransactionConfiguration>
Defines transactional (JTA) characteristics of the cache.
Author:
pmuir, Pedro Ruivo
  • Field Details

  • Method Details

    • autoCommit

      public boolean autoCommit()
      If the cache is transactional (i.e. transactionMode() == TransactionMode.TRANSACTIONAL) and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
    • cacheStopTimeout

      public TransactionConfiguration cacheStopTimeout(long l)
      If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout. It is recommended that this value does not exceed the transaction timeout because even if a new transaction was started just before the cache was stopped, this could only last as long as the transaction timeout allows it.
    • cacheStopTimeout

      public long cacheStopTimeout()
      If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout. It is recommended that this value does not exceed the transaction timeout because even if a new transaction was started just before the cache was stopped, this could only last as long as the transaction timeout allows it.
    • lockingMode

      public LockingMode lockingMode()
      Configures whether the cache uses optimistic or pessimistic locking. If the cache is not transactional then the locking mode is ignored.
      See Also:
    • lockingMode

      public TransactionConfiguration lockingMode(LockingMode lockingMode)
      Configures whether the cache uses optimistic or pessimistic locking. If the cache is not transactional then the locking mode is ignored.
      See Also:
    • transactionManagerLookup

      public TransactionManagerLookup transactionManagerLookup()
      Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
    • transactionSynchronizationRegistryLookup

      public TransactionSynchronizationRegistryLookup transactionSynchronizationRegistryLookup()
      Configure Transaction Synchronization Registry lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
    • transactionMode

      public TransactionMode transactionMode()
    • useSynchronization

      public boolean useSynchronization()
    • recovery

      public RecoveryConfiguration recovery()
      This method allows configuration of the transaction recovery cache. When this method is called, it automatically enables recovery. So, if you want it to be disabled, make sure you call RecoveryConfigurationBuilder.enabled(boolean) with false as parameter
    • reaperWakeUpInterval

      public long reaperWakeUpInterval()
      See Also:
    • completedTxTimeout

      public long completedTxTimeout()
      See Also:
    • use1PcForAutoCommitTransactions

      public boolean use1PcForAutoCommitTransactions()
      Before Infinispan 5.1 you could access the cache both transactionally and non-transactionally. Naturally the non-transactional access is faster and offers less consistency guarantees. From Infinispan 5.1 onwards, mixed access is no longer supported, so if you wanna speed up transactional caches and you're ready to trade some consistency guarantees, you can enable use1PcForAutoCommitTransactions.

      What this configuration option does is force an induced transaction, that has been started by Infinispan as a result of enabling autoCommit, to commit in a single phase. So only 1 RPC instead of 2RPCs as in the case of a full 2 Phase Commit (2PC).

      N.B. this option should NOT be used when modifying the same key from multiple transactions as 1PC does not offer any consistency guarantees under concurrent access.

    • notifications

      public boolean notifications()
      Returns:
      are transactional notifications ( TransactionRegistered and TransactionCompleted) triggered?