代码之家  ›  专栏  ›  技术社区  ›  Dave

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

  •  4
  • Dave  · 技术社区  · 14 年前

    我正在将各种SpringBeans转换为JNDI查找。目前我正在使用Jetty测试这个。我已经根据Jetty文档配置了用户事务,它可以工作:

    <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 回复  |  直到 14 年前
        1
  •  1
  •   crowne    14 年前

    您需要通过 jta.properties 在您的Jetty上下文中归档。
    例如,查看您的jetty发行版中的以下目录(我使用的是6.1.24):

    • /jetty-6.1.24/contexts/test-jndi.d/web-inf/classes
      • JTA.特性

    设置调用的属性 com.atomikos.icatch.max_timeout ,在默认示例文件中被注释掉。
    然后确保使用正确配置的上下文启动Jetty容器。