【问题标题】:How to change EJB transaction timeout in Glassfish 4.1.1?如何在 Glassfish 4.1.1 中更改 EJB 事务超时?
【发布时间】:2016-01-06 10:55:01
【问题描述】:

在 Glassfish 中,EJB 事务超时默认设置为 120 秒,我想更改此值。

我知道可以通过在 glassfish-ejb-jar.xml 中定义“cmt-timeout-in-seconds”参数来更改它,但是我使用带有 EJB 类的 Web 模块,并使用 glassfish-web.xml分别。

有什么办法可以改变超时时间吗?

统一更新:

事务服务设置中的事务超时值无效。

@Schedule(minute = "*/5", hour = "*", persistent = false)
public void doSomething() {
    log.info("Started");
    try {
        Thread.sleep(1000 * 119);
    } catch (InterruptedException ex) {
        log.info("Interrupted", ex);
    }
    log.info("Finished");
}

上面的代码运行良好。但是如果把休眠时间改为121秒

Thread.sleep(1000 * 121);

在 GF 服务器日志中我看到一个错误:

Warning:   EJB5123:Rolling back timed out transaction

此后,服务再次调用 doSomething() 方法,2 分钟后我再次看到错误:

Warning:   EJB5123: Rolling back timed out transaction
Info:   EJB5119:Expunging timer [...] after [2] failed deliveries

并且服务不再调用 doSomething() 方法。

【问题讨论】:

    标签: jakarta-ee ejb glassfish-4.1.1


    【解决方案1】:

    即使是 web 模块,也要添加 sun-ejb-jar.xml(或 glassfish-ejb-jar.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
    <sun-ejb-jar>
        <enterprise-beans>
             <ejb>
                <ejb-name>YourEjbName</ejb-name>
                <cmt-timeout-in-seconds>1200</cmt-timeout-in-seconds>
             </ejb>
        </enterprise-beans>
    </sun-ejb-jar>
    

    【讨论】:

    • 非常感谢,这个解决方法对我的情况有所帮助(GF 4.1.1 也是如此)!
    【解决方案2】:

    事务超时的默认值为 0(无超时),而不是 120。 2.1.1 版有Oracle tutorial,看起来并没有过时。

    在 GlassFish 4.1 上测试,在 4.1.1 中应该没有太大差异。

    【讨论】:

    • 我的问题和原发帖人一模一样。以前在 Glassfish 4.1 上工作正常——升级到 4.1.1 后才开始收到错误。在 domain.xml 中未指定超时值。我将尝试添加显式超时 0,并在几天后报告。
    • 确认,显式超时 0 没有实质性影响。我计划的方法继续超时。
    • 我遇到了同样的错误,现在似乎有一个问题为它创建:java.net/jira/browse/GLASSFISH-21495
    【解决方案3】:

    这是一个已报告的错误。

    http://java.net/jira/browse/GLASSFISH-21495

    当我有一个方法导入大量数据并调用flush时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      相关资源
      最近更新 更多