1
resposta

Qual o metodo de controle de transação adequado para o problema da fila de emails?

Eu entendi que tem a forma de controle da transação por container ou por bean. Mas para o caso de um email que desse erro, e os outros deveriam funcionar normalmente (agendado = true). Então eu teria que utilizar o controle manual da transação (BMT )? E como ficaria a Queue caso fosse dado erro no envio do email? Quero dizer, ela sai da queue até que o Produdor envie novamente já que o campo agendado vai continuar 0?

1 resposta

Márcio, bom dia. Na verdade, no caso de um erro, você pode persistir essa mensagem numa fila .dlq. Ela não ficará junto com as mensagens que não tem erro. Uma vez tratada, essa mensagem volta pra queue e o consumer poderá processá-la. Quanto a transação, envolvendo fila, não teria maiores problemas em ser BMT ou CMT, por conta do cenário que eu disse acima.