EJB Scheduler x JBoss com 4 instâncias

2 respostas
sech777

Pessoal, boa tarde.

Tenho um EJB que é um Scheduler. Ele roda a cada 5 minutos para atualizar algumas informações no banco de dados.

A minha aplicação está rodando no JBoss, só que este JBoss está com 4 instancias, isto é, uma máquina simulando 4.

Assim, quando faço o deploy da aplicação no JBoss, o EJB é replicado em 4 instâncias, assim, cada atualização que o EJB faz é replicada 3 vezes, totalizando 4. Isto é um problema, porque o registro no banco de dados é atualizado 4 vezes, quando deveria ser atualizado somente uma vez. Entenderam?

Bom, tenho duas soluções que resolvem mas que ao meu ver, são “cambiarras”. A primeira, é fazer o deploy do EJB somente em uma instância. O ploblema é que se essa instância cair/indisponibilidade, o serviço de atualização também pára, por isso, preciso desse EJB deployado em 4 instâncias. A segunda, é sincronizar/synchronized o método de atualização do EJB, mas eu ainda não sei como fazer isso, estou estudando, e também preciso avaliar os impactos na performance.

Qualquer ajuda é bem vinda.

Grato,

2 Respostas

guilherme_costa1

Já tentou colocar um campo timestamp na(s) tabela(s) que são atualizadas? Assim seu método pode verificar a data/hora da ultima atualização antes de realizar o update. Pode não ser a melhor solução, mas resolve o problema.

sech777

Mano, obrigado pela ideia e pela ajuda, eu não tinha pensado nisto. Mas ainda assim é uma gambiarra. Este projeto não pode ter isso…

Criado 29 de abril de 2013
Ultima resposta 2 de mai. de 2013
Respostas 2
Participantes 2