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,