2009-08-20 17 views
27

I twarz następujący wyjątek:
weblogic.transaction.internal.TimedOutException: Transakcja limit czasu po 300 sekundachWeblogic transakcja Timeout: jak ustawić w konsoli administracyjnej w WebLogic AS 8.1

jest ustawiony w sesji Stateless EJB Bean jako javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout (300) , ale nie mogę dowiedzieć się, gdzie w konsoli aplikacji ustawić tę właściwość.

+0

Jeśli nie jesteś w stanie ustawić limit czasu z konsolą, patrz [odpowiedz] (http://stackoverflow.com/a/17580412/1782379). – bsiamionau

Odpowiedz

37

Po zalogowaniu się na stronie głównej konsoli serwera powinieneś zobaczyć 3 sekcje:

  • informacji i zasobów
  • konfiguracji domen
  • Usługi Konfiguracje

Pod Services Konfiguracje jest podsekcja Inne usługi. Kliknij link JTA Konfiguracja pod Inne usługi. Limit czasu transakcji powinien być najwyższym ustawieniem na wyświetlanej stronie, oznaczonym jako Limit czasu sekundowego.

Weblogic Console screenshot

24

miał ten sam problem, dzięki MikeJ.

W WLS 10.3 to konfiguracyjnego można znaleźć w Usługi> JTA menu, lub po kliknięciu na nazwę domeny (pierwsza pozycja w menu) - na Konfiguracja> JTA zakładkach.

alt text

0

Jego możliwe na poziomie aplikacji. Kliknij komponent EJB w obszarze wdrażania (na przykład Strona główna>> Podsumowanie wdrożeń>). Kliknij na zakładce Configuration i tam jest "Timeout transakcja:"

+0

Nie ma czegoś takiego ... jest to limit czasu sesji – Cris

3

W Weblogic 9,2 konfiguracja za pomocą konsoli jest następująca:

enter image description here

wierzę domyślną wartością było 60. Pamiętaj, aby po edycji pola pamiętać o użyciu przycisku Release Configuration.

0

Jeśli nie chcesz zmienić domyślny limit czasu dla całej domeny, najlepszym rozwiązaniem jest zmiana deskryptora wdrażania przez ustawienie trans-timeout-sekund atrybut w weblogic-EJB jar.xml - patrz http://docs.oracle.com/cd/E11035_01/wls100/jta/trxejb.html

Powoduje przesłonięcie wartości domyślnej "Limit czasu" tylko dla tego konkretnego EJB, pozostawiając niezmienioną pozostałą część EJB.

0

Powyższy link jest raczej nieaktualny. W przypadku WebLogic 12c można zdefiniować czas realizacji transakcji w deskryptorze transakcji dla każdego komponentu EJB w deskryptorze wdrażania WebLogic: weblogic-ejb-jar.xml, patrz weblogic-ejb-jar.xml Deployment Descriptor Reference.

Do wiadomości napędzany był to wygląda następująco:

<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> 

Powiązane problemy