Pessoal,
Tenho um EJB, com três métodos, sendo que o metodo1 chama o metodo2, que chama o metodo 3.
Algo do tipo:
...
public void method1(){
method2();
}
public void method2(){
try{
...
}catch(Throwable){
method3();
}
}
public void method3(){
}
...
O method1 inicia uma transação, e chama o method2, que deve iniciar uma nova transação. Se o method2 lançar uma exceção, o method3 deverá ser chamado, iniciando uma nova transação.
Defini no ejb-jar.xml que os metódos method1, method2 e method3 requerem uma nova transação.
Porém, chamando da forma como apresentei acima, somente o method1 inicia a transação, visto que as demais chamadas ocorrem na mesma instância.
Estaria correto eu chamar um novo bean da mesma instância dentro dela mesma, de forma que as chamadas ao method2 e method3 iniciem uma nova transação, respeitando o atributo transacional?
Se não, qual seria a melhor forma de fazer isto?
Obrigado