Package com.atomikos.spring
Class AtomikosProperties
java.lang.Object
com.atomikos.spring.AtomikosProperties
@ConfigurationProperties(prefix="atomikos.properties")
public class AtomikosProperties
extends Object
Bean friendly variant of
Atomikos configuration
properties. Allows for setter based configuration and is amiable to relaxed data
binding.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRecovery specific settings. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the properties as aPropertiesobject that can be used with Atomikos.voidsetAllowSubTransactions(Boolean allowSubTransactions) voidsetCheckpointInterval(Long checkpointInterval) Specifies the interval between checkpoints.voidsetDefaultJtaTimeout(Duration defaultJtaTimeout) The default timeout for JTA transactions (optional, defaults to 10000 ms).voidsetDefaultMaxWaitTimeOnShutdown(Long defaultMaxWaitTimeOnShutdown) Specifies how long should a normal shutdown (no-force) wait for transactions to complete.voidsetEnableLogging(Boolean enableLogging) Specifies if disk logging should be enabled or not.voidsetForceShutdownOnVmExit(Boolean forceShutdownOnVmExit) Specifies whether VM shutdown should trigger forced shutdown of the transaction core.voidsetLogBaseDir(String logBaseDir) Specifies the directory in which the log files should be stored.voidsetLogBaseName(String logBaseName) Specifies the transactions log file base name.voidsetMaxActives(Integer maxActives) Specifies the maximum number of active transactions.voidsetMaxTimeout(Duration maxTimeout) Specifies the maximum timeout that can be allowed for transactions.voidsetSerialJtaTransactions(Boolean serialJtaTransactions) Specifies if subtransactions should be joined when possible.voidsetService(String service) Specifies the transaction manager implementation that should be started.voidsetThrowOnHeuristic(Boolean throwOnHeuristic) voidsetTransactionManagerUniqueName(String uniqueName) Specifies the transaction manager's unique name.
-
Constructor Details
-
AtomikosProperties
public AtomikosProperties()
-
-
Method Details
-
setService
Specifies the transaction manager implementation that should be started. There is no default value and this must be set. Generally, com.atomikos.icatch.standalone.UserTransactionServiceFactory is the value you should set.- Parameters:
service- the service
-
getService
-
setMaxTimeout
Specifies the maximum timeout that can be allowed for transactions. Defaults to 300000. This means that calls to UserTransaction.setTransactionTimeout() with a value higher than configured here will be max'ed to this value.- Parameters:
maxTimeout- the max timeout
-
getMaxTimeout
-
setDefaultJtaTimeout
The default timeout for JTA transactions (optional, defaults to 10000 ms).- Parameters:
defaultJtaTimeout- the default JTA timeout
-
getDefaultJtaTimeout
-
setMaxActives
Specifies the maximum number of active transactions. Defaults to 50. A negative value means infinite amount. You will get anIllegalStateExceptionwith error message "Max number of active transactions reached" if you callUserTransaction.begin()while there are already n concurrent transactions running, n being this value.- Parameters:
maxActives- the max activities
-
getMaxActives
-
setEnableLogging
Specifies if disk logging should be enabled or not. Defaults to true. It is useful for JUnit testing, or to profile code without seeing the transaction manager's activity as a hot spot but this should never be disabled on production or data integrity cannot be guaranteed.- Parameters:
enableLogging- if logging is enabled
-
isEnableLogging
-
setTransactionManagerUniqueName
Specifies the transaction manager's unique name. Defaults to the machine's IP address. If you plan to run more than one transaction manager against one database you must set this property to a unique value or you might run into duplicate transaction ID (XID) problems that can be quite subtle (example: https://fogbugz.atomikos.com/default.asp?community.6.2225.7). If multiple instances need to use the same properties file then the easiest way to ensure uniqueness for this property is by referencing a system property specified at VM startup.- Parameters:
uniqueName- the unique name
-
getTransactionManagerUniqueName
-
setSerialJtaTransactions
Specifies if subtransactions should be joined when possible. Defaults to true. When false, no attempt to callXAResource.start(TM_JOIN)will be made for different but related subtransactions. This setting has no effect on resource access within one and the same transaction. If you don't use subtransactions then this setting can be ignored.- Parameters:
serialJtaTransactions- if serial JTA transactions are supported
-
isSerialJtaTransactions
-
setAllowSubTransactions
-
isAllowSubTransactions
-
setForceShutdownOnVmExit
Specifies whether VM shutdown should trigger forced shutdown of the transaction core. Defaults to false.- Parameters:
forceShutdownOnVmExit- if VM shutdown should be forced
-
isForceShutdownOnVmExit
-
setDefaultMaxWaitTimeOnShutdown
Specifies how long should a normal shutdown (no-force) wait for transactions to complete. Defaults to Long.MAX_VALUE.- Parameters:
defaultMaxWaitTimeOnShutdown- the default max wait time on shutdown
-
getDefaultMaxWaitTimeOnShutdown
-
setLogBaseName
Specifies the transactions log file base name. Defaults to tmlog. The transactions logs are stored in files using this name appended with a number and the extension .log. At checkpoint, a new transactions log file is created and the number is incremented.- Parameters:
logBaseName- the log base name
-
getLogBaseName
-
setLogBaseDir
Specifies the directory in which the log files should be stored. Defaults to the current working directory. This directory should be a stable storage like a SAN, RAID or at least backed up location. The transactions logs files are as important as the data themselves to guarantee consistency in case of failures.- Parameters:
logBaseDir- the log base dir
-
getLogBaseDir
-
setCheckpointInterval
Specifies the interval between checkpoints. A checkpoint reduces the log file size at the expense of adding some overhead in the runtime. Defaults to 500.- Parameters:
checkpointInterval- the checkpoint interval
-
getCheckpointInterval
-
getRecovery
-
setThrowOnHeuristic
-
isThrowOnHeuristic
-
asProperties
Returns the properties as aPropertiesobject that can be used with Atomikos.- Returns:
- the properties
-