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:
  • Constructor Details

    • AtomikosProperties

      public AtomikosProperties()
  • Method Details

    • setService

      public void setService(String service)
      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

      public String getService()
    • setMaxTimeout

      public void setMaxTimeout(Duration maxTimeout)
      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

      public Duration getMaxTimeout()
    • setDefaultJtaTimeout

      public void setDefaultJtaTimeout(Duration defaultJtaTimeout)
      The default timeout for JTA transactions (optional, defaults to 10000 ms).
      Parameters:
      defaultJtaTimeout - the default JTA timeout
    • getDefaultJtaTimeout

      public Duration getDefaultJtaTimeout()
    • setMaxActives

      public void setMaxActives(Integer maxActives)
      Specifies the maximum number of active transactions. Defaults to 50. A negative value means infinite amount. You will get an IllegalStateException with error message "Max number of active transactions reached" if you call UserTransaction.begin() while there are already n concurrent transactions running, n being this value.
      Parameters:
      maxActives - the max activities
    • getMaxActives

      public Integer getMaxActives()
    • setEnableLogging

      public void setEnableLogging(Boolean enableLogging)
      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

      public Boolean isEnableLogging()
    • setTransactionManagerUniqueName

      public void setTransactionManagerUniqueName(String uniqueName)
      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

      public String getTransactionManagerUniqueName()
    • setSerialJtaTransactions

      public void setSerialJtaTransactions(Boolean serialJtaTransactions)
      Specifies if subtransactions should be joined when possible. Defaults to true. When false, no attempt to call XAResource.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

      public Boolean isSerialJtaTransactions()
    • setAllowSubTransactions

      public void setAllowSubTransactions(Boolean allowSubTransactions)
    • isAllowSubTransactions

      public Boolean isAllowSubTransactions()
    • setForceShutdownOnVmExit

      public void setForceShutdownOnVmExit(Boolean forceShutdownOnVmExit)
      Specifies whether VM shutdown should trigger forced shutdown of the transaction core. Defaults to false.
      Parameters:
      forceShutdownOnVmExit - if VM shutdown should be forced
    • isForceShutdownOnVmExit

      public Boolean isForceShutdownOnVmExit()
    • setDefaultMaxWaitTimeOnShutdown

      public void setDefaultMaxWaitTimeOnShutdown(Long defaultMaxWaitTimeOnShutdown)
      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

      public Long getDefaultMaxWaitTimeOnShutdown()
    • setLogBaseName

      public void setLogBaseName(String logBaseName)
      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

      public String getLogBaseName()
    • setLogBaseDir

      public void setLogBaseDir(String logBaseDir)
      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

      public String getLogBaseDir()
    • setCheckpointInterval

      public void setCheckpointInterval(Long checkpointInterval)
      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

      public Long getCheckpointInterval()
    • getRecovery

      public AtomikosProperties.Recovery getRecovery()
    • setThrowOnHeuristic

      public void setThrowOnHeuristic(Boolean throwOnHeuristic)
    • isThrowOnHeuristic

      public Boolean isThrowOnHeuristic()
    • asProperties

      public Properties asProperties()
      Returns the properties as a Properties object that can be used with Atomikos.
      Returns:
      the properties