如何在Jetty JNDI Atomikos配置上设置事务超时

时间:2010-10-14 05:03:04

标签: java spring jetty jndi atomikos

我正在将各种Spring bean转换为JNDI查找。目前我正在使用Jetty来测试它。我根据Jetty文档配置了UserTransaction,它可以工作:

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

这个配置的问题是它没有像我的Spring配置那样设置事务超时:

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

我尝试了以下内容,但它没有用......出于某种原因,我最终得到了两个用户交易:

<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>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要通过jetty上下文中的jta.properties文件配置atomikos事务管理器。
例如,查看Jetty发行版中的以下目录(我正在使用6.1.24):

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

设置名为com.atomikos.icatch.max_timeout的属性,该属性在默认样本文件中注释掉 然后确保使用正确配置的上下文启动jetty容器。