Тайм-аут транзакции Weblogic: как установить в консоли администратора в WebLogic AS 8.1

Я столкнулся со следующим исключением:
weblogic.transaction.internal.TimedOutException: время ожидания транзакции истекло через 300 секунд.

это установлено в компоненте EJB сеанса без сохранения состояния как javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout(300), но я не могу понять, где в консоли приложения установить это свойство.


person yli    schedule 20.08.2009    source источник
comment
Если вы не можете установить время ожидания с помощью консоли, см. этот ответ.   -  person bsiamionau    schedule 11.07.2013


Ответы (6)


arrow_upward
40
arrow_downward

После авторизации на главной странице Консоли сервера вы должны увидеть 3 раздела:

  • Информация и ресурсы
  • Конфигурации домена
  • Конфигурации служб

В разделе Конфигурации служб есть подраздел Другие службы. Щелкните ссылку Конфигурация JTA в разделе Другие службы. Тайм-аут транзакции должен быть верхней настройкой на отображаемой странице с пометкой Тайм-аут в секундах.

Снимок экрана Weblogic Console

person mikej    schedule 20.08.2009

arrow_upward
28
arrow_downward

Была такая же проблема, спасибо mikej.

В WLS 10.3 эту конфигурацию можно найти в меню Сервисы > JTA или, если щелкнуть имя домена (первый пункт меню) - на вкладках Конфигурация > JTA. .

альтернативный текст

person Kirill Strizhak    schedule 06.12.2010

arrow_upward
4
arrow_downward

В Weblogic 9.2 настройка через консоль выглядит следующим образом:

введите здесь описание изображения

Я считаю, что значение по умолчанию было 60. Не забудьте использовать кнопку Release Configuration после редактирования поля.

person Rafał    schedule 19.05.2014

arrow_upward
1
arrow_downward

Если вы не хотите изменять время ожидания по умолчанию для всего домена, лучше всего изменить дескриптор развертывания, установив атрибут trans-timeout-seconds в файле weblogic-ejb-jar.xml — см. http://docs.oracle.com/cd/E11035_01/wls100/jta/trxejb.html

Это переопределяет значение по умолчанию «Время ожидания в секундах» только для этого конкретного EJB, не затрагивая при этом все остальные EJB.

person Pierluigi Vernetto    schedule 23.06.2015

arrow_upward
0
arrow_downward

Это возможно на уровне приложения. Щелкните EJB под развертыванием (например, Home > > Summary of Deployments >). Перейдите на вкладку «Конфигурация», и там появится «Тайм-аут транзакции:».

person Shashi    schedule 14.07.2011
comment
Там такого нет... это тайм-аут сеанса - person Cris; 05.02.2015
comment
Такой опции нет в WebLogic Server 10.3.6.0. - person Sandoval0992; 20.07.2018

arrow_upward
0
arrow_downward

Ссылка выше довольно устарела. Для WebLogic 12c вы можете определить время ожидания транзакции в дескрипторе транзакции для каждого EJB в дескрипторе развертывания WebLogic weblogic-ejb-jar.xml, см. weblogic-ejb-jar.xml Справочник по дескриптору развертывания.

Для управляемого сообщения be это выглядит так:

<weblogic-enterprise-bean>
    <ejb-name>TestMessageBeanLow</ejb-name>
    <message-driven-descriptor>
        <pool>
            <max-beans-in-free-pool>1</max-beans-in-free-pool>
        </pool>
        <destination-jndi-name>jms/ActiveMQ/TestRequestQueue_LOW</destination-jndi-name>
        <connection-factory-jndi-name>jms/ActiveMQ/TestConnectionFactory</connection-factory-jndi-name>
    </message-driven-descriptor>
    <transaction-descriptor>
        <trans-timeout-seconds>60</trans-timeout-seconds>
    </transaction-descriptor>
    <resource-description>
        <res-ref-name>jms/ConnectionFactory</res-ref-name>
        <jndi-name>jms/ActiveMQ/TestConnectionFactory</jndi-name>
    </resource-description>
</weblogic-enterprise-bean>

person thmayr    schedule 10.03.2016