Class TransactionConfiguration
- java.lang.Object
-
- org.infinispan.configuration.cache.TransactionConfiguration
-
- All Implemented Interfaces:
org.infinispan.commons.configuration.attributes.Matchable<TransactionConfiguration>,BaseConfigurationInfo,ConfigurationInfo
public class TransactionConfiguration extends Object implements org.infinispan.commons.configuration.attributes.Matchable<TransactionConfiguration>, ConfigurationInfo
Defines transactional (JTA) characteristics of the cache.- Author:
- pmuir, Pedro Ruivo
-
-
Field Summary
Fields Modifier and Type Field Description static org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean>AUTO_COMMITstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Long>CACHE_STOP_TIMEOUTstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Long>COMPLETED_TX_TIMEOUTstatic org.infinispan.commons.configuration.elements.ElementDefinitionELEMENT_DEFINTIONstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<LockingMode>LOCKING_MODEstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean>NOTIFICATIONSstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Long>REAPER_WAKE_UP_INTERVALstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<org.infinispan.commons.tx.lookup.TransactionManagerLookup>TRANSACTION_MANAGER_LOOKUPstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<TransactionMode>TRANSACTION_MODEstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<org.infinispan.transaction.lookup.TransactionSynchronizationRegistryLookup>TRANSACTION_SYNCHRONIZATION_REGISTRY_LOOKUPstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean>USE_1_PC_FOR_AUTO_COMMIT_TRANSACTIONSstatic org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean>USE_SYNCHRONIZATION
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.infinispan.commons.configuration.attributes.AttributeSetattributes()booleanautoCommit()If the cache is transactional (i.e.longcacheStopTimeout()If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish.TransactionConfigurationcacheStopTimeout(long l)If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish.longcompletedTxTimeout()booleanequals(Object obj)org.infinispan.commons.configuration.elements.ElementDefinitiongetElementDefinition()inthashCode()LockingModelockingMode()Configures whether the cache uses optimistic or pessimistic locking.TransactionConfigurationlockingMode(LockingMode lockingMode)Configures whether the cache uses optimistic or pessimistic locking.booleanmatches(TransactionConfiguration other)booleannotifications()longreaperWakeUpInterval()RecoveryConfigurationrecovery()This method allows configuration of the transaction recovery cache.List<ConfigurationInfo>subElements()StringtoString()org.infinispan.commons.tx.lookup.TransactionManagerLookuptransactionManagerLookup()Configure Transaction manager lookup directly using an instance of TransactionManagerLookup.TransactionModetransactionMode()org.infinispan.transaction.lookup.TransactionSynchronizationRegistryLookuptransactionSynchronizationRegistryLookup()Configure Transaction Synchronization Registry lookup directly using an instance of TransactionManagerLookup.booleanuse1PcForAutoCommitTransactions()Before Infinispan 5.1 you could access the cache both transactionally and non-transactionally.booleanuseSynchronization()
-
-
-
Field Detail
-
AUTO_COMMIT
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean> AUTO_COMMIT
-
CACHE_STOP_TIMEOUT
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Long> CACHE_STOP_TIMEOUT
-
LOCKING_MODE
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<LockingMode> LOCKING_MODE
-
TRANSACTION_MANAGER_LOOKUP
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<org.infinispan.commons.tx.lookup.TransactionManagerLookup> TRANSACTION_MANAGER_LOOKUP
-
TRANSACTION_SYNCHRONIZATION_REGISTRY_LOOKUP
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<org.infinispan.transaction.lookup.TransactionSynchronizationRegistryLookup> TRANSACTION_SYNCHRONIZATION_REGISTRY_LOOKUP
-
TRANSACTION_MODE
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<TransactionMode> TRANSACTION_MODE
-
USE_SYNCHRONIZATION
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean> USE_SYNCHRONIZATION
-
USE_1_PC_FOR_AUTO_COMMIT_TRANSACTIONS
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean> USE_1_PC_FOR_AUTO_COMMIT_TRANSACTIONS
-
REAPER_WAKE_UP_INTERVAL
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Long> REAPER_WAKE_UP_INTERVAL
-
COMPLETED_TX_TIMEOUT
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Long> COMPLETED_TX_TIMEOUT
-
NOTIFICATIONS
public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Boolean> NOTIFICATIONS
-
ELEMENT_DEFINTION
public static final org.infinispan.commons.configuration.elements.ElementDefinition ELEMENT_DEFINTION
-
-
Method Detail
-
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:
transactionMode()
-
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:
transactionMode()
-
transactionManagerLookup
public org.infinispan.commons.tx.lookup.TransactionManagerLookup transactionManagerLookup()
Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
-
transactionSynchronizationRegistryLookup
public org.infinispan.transaction.lookup.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 callRecoveryConfigurationBuilder.enabled(boolean)with false as parameter
-
reaperWakeUpInterval
public long reaperWakeUpInterval()
-
completedTxTimeout
public long completedTxTimeout()
-
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 (
TransactionRegisteredandTransactionCompleted) triggered?
-
attributes
public org.infinispan.commons.configuration.attributes.AttributeSet attributes()
- Specified by:
attributesin interfaceBaseConfigurationInfo- Returns:
- the
AttributeSetdeclared by the configuration.
-
getElementDefinition
public org.infinispan.commons.configuration.elements.ElementDefinition getElementDefinition()
- Specified by:
getElementDefinitionin interfaceBaseConfigurationInfo- Returns:
- the
ElementDefinitionof the configuration.
-
toString
public String toString()
-
equals
public boolean equals(Object obj)
-
subElements
public List<ConfigurationInfo> subElements()
- Specified by:
subElementsin interfaceConfigurationInfo- Returns:
- the list of sub elements.
-
matches
public boolean matches(TransactionConfiguration other)
-
hashCode
public int hashCode()
-
-