Перезаписать время ожидания транзакции WebSphere по умолчанию - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть приложение в WebSphere, транзакция по умолчанию - 150 секунд, я не хочу ее менять. Но у меня есть таймер EJB, иногда он занимает слишком много времени (более 150 секунд) для завершения sh и выдает исключение TimeoutException.

Как я могу перезаписать тайм-аут транзакции только для этого метода / компонента?

@Timeout
public void mainService(Timer time) {
    // some code
}

1 Ответ

1 голос
/ 12 февраля 2020

Следующий пост StackOverflow предоставляет ответ на этот вопрос:

Тайм-аут транзакции бина в WebSphere с использованием таймера EJB

В этом посте не приводится полный пример файл 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>

Вам нужно будет заменить имя вашего бина и поместить файл ibm-ejb-jar-ext. xml, если у вас его еще нет, вместе с дескриптором развертывания EJB ejb-jar. xml

...