Jboss 7.1 ejb 2.1自定义事务超时配置

时间:2012-10-22 16:04:00

标签: jboss7.x ejb-2.x

我目前正在尝试将我的Web应用程序从jboss 5.1升级到jboss 7.1.1.Final

在我的jboss.xml中,我已经配置了一些自定义ejb超时,如下所示:

     <session>
        <ejb-name>MSServiceEJB</ejb-name>
        <jndi-name>ejb/MSServiceEJB</jndi-name>
        <local-jndi-name>ejb/LocalMSServiceEJB</local-jndi-name>
        <method-attributes>
            <method>
                <method-name>*</method-name>
                <transaction-timeout>3600</transaction-timeout>
            </method>
        </method-attributes>
    </session>

jboss 7忽略了jboss.xml,在哪里可以指定我的ejb 2.1事务超时?

2 个答案:

答案 0 :(得分:7)

Source

替换jboss.xml部署描述符文件

  

jboss-ejb3.xml部署描述符将jboss.xml部署描述符替换为   覆盖并添加Java Enterprise提供的功能   Edition(EE)定义了ejb3-jar.xml部署描述符。新文件   与jboss.xml不兼容,现在忽略了jboss.xml   部署。

您需要创建jboss-ejb3.xml并将配置放在其中。

它看起来像这样:

<assembly-descriptor>
    <container-transaction>
        <method>
            <ejb-name>EJBName</ejb-name>
            <method-name>methodName</method-name>
            <method-intf>Local</method-intf>
        </method>
        <tx:trans-timeout>
            <tx:timeout>500</tx:timeout>
            <tx:unit>Seconds</tx:unit>
        </tx:trans-timeout>
    </container-transaction>
</assembly-descriptor>

您正在使用EJB2.x,因此在ejb-jar.xml

中配置它会更好更明智

应该在META-INF of the EJB jar

中创建

答案 1 :(得分:3)

您可以使用@TransactionTimeOut注释在Bean方法上指定。

@TransactionTimeout(value = 10, unit = TimeUnit.SECONDS)

有关如何设置的详细说明,请参阅here

麦迪