Я сталкиваюсь со следующим исключением: weblogic.transaction.internal.TimedOutException: время транзакции истекло через 300 секунд
это установлено в EJB Bean Session Stateless как javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout (300) но я не могу понять, где в консоли приложения установить это свойство.
После входа на домашней странице консоли сервера вы увидите 3 раздела:
В разделе Конфигурации служб есть подраздел Другие службы . Нажмите на ссылку JTA Configuration в разделе Другие службы . Тайм-аут транзакции должен быть верхним значением на отображаемой странице с пометкой Время ожидания секунд .
Была такая же проблема, спасибо mikej .
В WLS 10.3 эту конфигурацию можно найти в меню Службы> JTA или, если вы щелкнете по имени домена (первый пункт в меню), - в Конфигурация> JTA вкладки.
В Weblogic 9.2 конфигурация через консоль следующая:
Я считаю, что значением по умолчанию было 60. Не забудьте использовать кнопку Release Configuration после редактирования поля.
60
Release Configuration
Ссылка выше довольно устарела. Для WebLogic 12c вы можете определить тайм-аут транзакции в дескрипторе транзакции для каждого EJB в дескрипторе развертывания WebLogic weblogic-ejb-jar.xml, см. weblogic-ejb-jar.xml Справочник по дескриптору развертывания .
Для управляемого сообщения оно выглядит так:
<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>
Если вы не хотите изменять тайм-аут по умолчанию для всего домена, лучше всего изменить дескриптор развертывания, установив атрибут trans-timeout-seconds в weblogic-ejb-jar.xml - см. http://docs.oracle.com/cd/E11035_01/wls100/jta/trxejb.html
Это переопределяет значение по умолчанию «Timeout Seconds», только для этого конкретного EJB, при этом все остальные EJB остаются без изменений.
Это возможно на уровне приложения.Нажмите на EJB под развертыванием (как Главная> Сводка развертываний>).Нажмите на вкладку «Конфигурация», и появится «Время ожидания транзакции»: