Rollback MDB

1 resposta
Jedi_FeniX

Dentro de um MDB eu tenho a persistência de um objeto no banco de dados, só que quando esse MDB sofre uma exception o objeto não é persistido. Isso acontece pq ocorre um rollback na transação, então, tudo que está dentro do escopo do MDB sofre rollback, sendo que eu preciso persistir esse objeto mesmo se a exception acontecer.

Alguém tem uma solução para este cenário?

Segue uma ilustração do cenário:

public class MDB {

public void onMessage(message) {
   if(teste) {
      this.repositorio.persitir(evento);
   } else {
      this.repositorio.persistir(evento);
      throw new RuntimeException();
   }

}

Desde já agradeço a ajuda prestada.

1 Resposta

Hebert_Coelho

O problema é que você está jogando uma throw new RuntimeException(); e isso faz com que a transação sofra rollback.

Crie uma exception sua e marque como application exception e rollback = false, desse jeito sua transação persistirá a informação.

Criado 15 de setembro de 2014
Ultima resposta 15 de set. de 2014
Respostas 1
Participantes 2