How to set transaction timeout in Jetty JNDI Atomikos configuration

I am going to convert various Spring beans queries to JNDI. I am currently using Jetty to verify this. I configured UserTransaction according to Jetty documentation and it works:

<New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"> <Arg> <New class="com.atomikos.icatch.jta.UserTransactionImp"> </New> </Arg> </New> 

The problem with this configuration is that it does not set a transaction timeout, such as my Spring configurator:

 <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <!-- Number of seconds before transaction timesout. --> <property name="transactionTimeout" value="30" /> </bean> 

I tried the following, but that didn't work ... for some reason, I ended up with two user transactions:

 <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"> <Arg> <New class="com.atomikos.icatch.jta.UserTransactionImp"> <Set name="transactionTimeout">30</Set> </New> </Arg> </New> 

Any ideas?

+4
source share
1 answer

You need to configure atomikos transaction manager through the jta.properties file in the context of your berth.
For example, look at the following directory in the Jetty distribution (I use 6.1.24):

  • /jetty-6.1.24/contexts/test-jndi.d/WEB-INF/classes
    • jta.properties

set a property named com.atomikos.icatch.max_timeout , which is commented out in the default sample file.
Then make sure that you start the supply container using a properly configured context.

+1
source

All Articles