2015-01-22 22 views
6

Con JBoss/Wildfly è possibile utilizzare l'annotazione proprietaria @TransactionTimeout e definire un timeout della transazione per un Session Bean specifico.Timeout transazioni Bean in WebSphere utilizzando EJB Timer

Qual è il modo equivalente di farlo utilizzando IBM WebSphere?

Stiamo utilizzando EJB Timer e uno dei bean richiederà più di un'ora per essere completato.

Codice di esempio per wildfly:

import org.jboss.ejb3.annotation.TransactionTimeout; 

@Stateless 
@TransactionTimeout(value=7200) 
public class TimerBean { 

} 

Nota: L'uso di WebSphere 8.5. La modifica del tempo di transazione globale non è un'opzione, dobbiamo farlo per un Session Bean specifico, o forse un'applicazione (EAR).

risposta

7

Sì, è possibile. È possibile impostarlo tramite transaction-time-out nell'estensione personalizzata ibm-ejb-jar-ext.xml.

In quel file definiscono:

<session name="TimerBean"> 
     <global-transaction transaction-time-out="7200"/> 
</session> 

Component Transaction Timeout
Per bean enterprise che utilizzano solo le transazioni gestite dal contenitore, specifica il timeout di transazione, in secondi, per ogni nuovo transazione globale che il contenitore inizi per conto del bean aziendale . Per le transazioni avviate per conto del componente, l'impostazione Timeout transazioni componente sostituisce il valore predefinito predefinito timeout della transazione configurato nelle impostazioni del servizio di transazione per il server applicazioni.

per maggiori dettagli si Configuring transactional deployment attributes

+0

Ha funzionato. Il link che hai pubblicato ha buone informazioni. – BonanzaOne