2009-08-20 15 views
27

affronto la seguente eccezione:
weblogic.transaction.internal.TimedOutException: Transaction scaduta dopo 300 secondiWeblogic Transaction Timeout: come impostare in console di amministrazione di WebLogic 8.1 AS

questa si trova all'interno del Stateless Session EJB Bean come javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout (300) ma non riesco a capire, dove nella console dell'applicazione impostare questa proprietà.

+0

Se non si è in grado di impostare il timeout con la console, vedere [questa risposta] (http://stackoverflow.com/a/17580412/1782 mila trecentosettantanove). – bsiamionau

risposta

37

Dopo il login, sulla home page del Console Server si dovrebbe vedere 3 sezioni:

  • informazioni e risorse
  • configurazioni di dominio
  • Servizi Configurazioni

Sotto Servizi Configurazioni c'è la sottosezione Altri servizi. Fare clic sul collegamento Configurazione JTA in Altri servizi. Il timeout della transazione deve essere l'impostazione superiore nella pagina visualizzata, etichettata come Timeout Seconds.

Weblogic Console screenshot

24

avevano lo stesso problema, grazie mikej.

In WLS 10.3 questa configurazione si possono trovare in Servizi> JTA menù, o se si fa clic sul nome di dominio (prima voce del menu) - sulle Configurazione> JTA schede.

alt text

0

sua possibile a livello di applicazione. Fare clic su EJB sotto la distribuzione (come Home>> Sommario delle distribuzioni>). Fare clic sulla scheda Configurazione e non v'è "Timeout di transazione:"

+0

Non c'è niente del genere ... è il timeout della sessione – Cris

3

In Weblogic 9.2 la configurazione tramite console è la seguente:

enter image description here

Credo che il valore di default è stato 60. Ricordarsi di usare il pulsante Release Configuration dopo aver modificato il campo.

0

Se non si desidera modificare il timeout predefinito a livello di dominio, l'opzione migliore è quello di cambiare il descrittore di deployment impostando l'attributo trans-timeout-secondi nel weblogic-ejb-jar.xml - vedi http://docs.oracle.com/cd/E11035_01/wls100/jta/trxejb.html

Questo sostituisce l'impostazione predefinita di "Timeout Seconds", solo per questo specifico EJB, lasciando inalterati tutti gli altri bean EJB.

0

Il collegamento sopra riportato è piuttosto obsoleto. Per WebLogic 12c è possibile definire il limite di transazione in un descrittore di transazione per ogni EJB nel descrittore di distribuzione di WebLogic weblogic-ejb-jar.xml, vedere weblogic-ejb-jar.xml Deployment Descriptor Reference.

Per un messaggio guidato stato che assomiglia a questo:

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

Problemi correlati