Transação no EJB

1 resposta
danieldestro

Caros,
Tô com um problema chato aqui.

Tenho um EJB (Session) que executa a seguinte tarefa:

  • cria um registro no BD
  • coloca uma mensagem no JMS (Queue / MDB)

E o meu EJB MDB que é executado quando uma mensagem é postada na fila:

  • lê o registro criado no BD
  • faz um processamento.

Acontece que às vezes o MDB é executado antes mesmo de o meu EJB Session terminar de executar, então o MDB não acha o registro no BD, pois como o Session ainda não terminou, a transação não foi “commitada” e o registro ainda não existe no BD.

Eu tentei usar Entity Bean BMP ao invés de um DAO para grava no BD, mas mesmo assim acontece o mesmo problema.

Alguém tem uma idéia para solucionar o meu problema?

Valeu!

1 Resposta

danieldestro

Putz! Como eu odeio EJBs.

A solução adotada foi de quebrar o meu método em dois sub-métodos e colocar o método específico para a criação do registro como (transaction type=“RequiresNew”).

Affffff…

Criado 23 de novembro de 2004
Ultima resposta 23 de nov. de 2004
Respostas 1
Participantes 1