2016-05-06 10 views
0

Ich versuche, 2 pc Transaktion Rollback auf JBOSS eap7 zu testen. Mit Xa-Setup und einer Orakel Xa-Datenquelle.Zweiphasen-Commit-Rollback jboss 7.x testen (2pc)

Bean ein Update auf DB mit Oracle Xa-Datenquelle und die Veröffentlichung eines JMS Messg. MDB empfängt die Nachricht und löst eine Laufzeitausnahme aus.

Ich erwartete, dass meine DB-Transaktion ebenfalls rückgängig gemacht wird, aber es ist festgeschrieben.

Meine Sitzung ist in Sitzungssitzung = connection.createSession (true, Session.SESSION_TRANSACTED);

Irgendwelche Ideen oder bessere Tests, um diese Funktionalität zu überprüfen?

Antwort

0

Ich würde empfehlen, Anmerkungen zu verwenden, um Ihre MDB als transaktional zu markieren. Zum Beispiel:

import javax.ejb.TransactionAttribute; 
import javax.ejb.TransactionAttributeType; 

@TransactionAttribute(TransactionAttributeType.REQUIRED) 
public class myMDB implements MessageListener { 
... 
... 
... 
} 

Dies bewirkt, dass JBoss eine Transaktion für alle Methoden in der MDB starten.

+0

Dank Doug. Ich habe nicht bemerkt, dass der Container immer standardmäßig abgewickelt wird. – santosh1220