覆盖 WebSphere 默认事务超时
Overwrite WebSphere default transaction timeout
我在 WebSphere 上有一个应用程序,默认事务是 150 秒,我不想更改它。
但是我有一个 EJB 计时器,有时它需要太长的时间(超过 150 秒)才能完成并抛出 TimeoutException。
我如何才能只覆盖此 method/bean 的事务超时?
@Timeout
public void mainService(Timer time) {
// some code
}
以下 Whosebug post 提供了这个问题的答案:
post 没有给出 ibm-ejb-jar-ext.xml 文件的完整示例,这可能很难找到,所以我将在此处包括一个。
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-ext xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-ext_1_1.xsd" version="1.1">
<session name="YourSessionBean">
<global-transaction transaction-time-out="300"/>
</session>
</ejb-jar-ext>
您需要替换您的 bean 名称并放置 ibm-ejb-jar-ext.xml 文件(如果您还没有),以及您的 EJB 部署描述符 ejb-jar.xml
我在 WebSphere 上有一个应用程序,默认事务是 150 秒,我不想更改它。 但是我有一个 EJB 计时器,有时它需要太长的时间(超过 150 秒)才能完成并抛出 TimeoutException。
我如何才能只覆盖此 method/bean 的事务超时?
@Timeout
public void mainService(Timer time) {
// some code
}
以下 Whosebug post 提供了这个问题的答案:
post 没有给出 ibm-ejb-jar-ext.xml 文件的完整示例,这可能很难找到,所以我将在此处包括一个。
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-ext xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-ext_1_1.xsd" version="1.1">
<session name="YourSessionBean">
<global-transaction transaction-time-out="300"/>
</session>
</ejb-jar-ext>
您需要替换您的 bean 名称并放置 ibm-ejb-jar-ext.xml 文件(如果您还没有),以及您的 EJB 部署描述符 ejb-jar.xml