2017-06-07 3 views
0

Ich habe eine EJB, die einige DB-Operation ausführt und dann eine andere EJB nach JNDI-Lookup, die mehr DB-Operation durchführt. Dieser zweite EJB-Aufruf kann einige Ausnahmen auslösen, d. H. PersistenceException (ich habe im Code nachgesehen, dass diese Ausnahme die Transaktion nur als Rollback bezeichnet). Gibt es eine Möglichkeit, den Rollback der Transaktion zu vermeiden? Unten ist der Code, der das Problem zusammenfasst. Danke im Voraus.Handle Exception in EJB

etwa in diesem Thema
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 

Es gibt viel mehr zu wissen:

public class Test { 

    ejbMthod1() { 
     // This method run under transaction 
     // Do some DB operation like update\delete 
     if(somecondition) { 
      try { 
       // JNDI lookup for ejb2 
       ejbMethod2(); 
      } 
      catch(Exception ex){ 
       // Will catching the exception here save the Transaction from rollback ? 
       // Is there any way I can avoid this rollback just by handling proper exceptions ? 
      } 
     } 
    } 
} 

class Test2 { 
    ejbMethod2() { 
     // Run under same transaction as caller 
     // do some DB operation which can throw many exception i.e. PersistenceException. 
    } 
} 
+0

Tipp: Wenn Ihr Problem gelöst wurde, können Sie es akzeptieren. – Mordechai

Antwort

0

Das Verfahren, das die Ausnahme wirft müssen wie mit Anmerkungen versehen werden. Ich empfehle dringend, this great article zu lesen.