change jta transaction timeout from default to custom

霸气de小男生 提交于 2019-12-01 06:43:49

From the Atomikos documentation:

com.atomikos.icatch.max_timeout

Specifies the maximum timeout (in milliseconds) 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. For 4.x or higher, a value of 0 means no maximum (i.e., unlimited timeouts are allowed).

Indeed, if you take a look at the Atomikos library source code (for both versions 4.0.0M4 and 3.7.0), in the createCC method from class com.atomikos.icatch.imp.TransactionServiceImp you will see:

387:   if ( timeout > maxTimeout_ ) {
388:       timeout = maxTimeout_;
389:       //FIXED 20188
390:       LOGGER.logWarning ( "Attempt to create a transaction with a timeout that exceeds maximum - truncating to: " + maxTimeout_ );
391:   }

So any attempt to specify a longer transaction timeout gets capped to maxTimeout_ which has a default value of 300000 set during initialization if none is specified.

You can set the com.atomikos.icatch.max_timeout as a JVM argument with:

-Dcom.atomikos.icatch.max_timeout=900000

or you could use The Advanced Case recipe specified in the Configuration for Spring Section from the Atomikos documentation.

I've resolved similar problem where configuration in application.yml (or application. properties) of Spring Boot did not get picked up.

There was even a log that I later found mentioned in official docs.

However, I added transactions.properties file (next to the application.yml) where I set mine desired properties.

# Atomikos properties

# Service must be defined!
com.atomikos.icatch.service = com.atomikos.icatch.standalone.UserTransactionServiceFactory

# Override default properties.
com.atomikos.icatch.log_base_dir = ./atomikos

Some properties can be set within transactions.properties and other within jta.properties file.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!