Estou utilizando o JBOSS 4 e estou implementando uma fundionalidade que funciona semelhante a um scheduler.
Até agora fiz o MDS implementar a interface TimedObject, implementei o método ejbTimeout… o agendador rola direitinho.
O problema é que se eu reiniciar o servidor, o agendamento é perdido…
Não dá pra utilizar a api de scheduler do JBoss pois eu só sei o tempo de espera em tempo de execução…
Ao agendar uma tarefa, salve a mesma em uma lista ordenada pela data de agendamento. esta lista deve ser persistente para “sobreviver” a uma reinicialização do servidor.
No evento de timer, consulte a lista e execute as tarefas “vencidas”, ou seja, aquelas cuja data de execução <= data atual. Para cada tarefa executada, remova a mesma da lista ou use um flag indicando a data/hora de execução.
Isso que eu ia falar mesmo. é uma característica da arquitetura dos EJBs resgatar particularidades transacionais ativas anteriores à ultima “Quedinha” do sistema… Tava com cara de bug mesmo.rs
Era um bug na versão do JBoss q eu tava usando, é só atualizar a versão q ele persiste na boa.
valeu.[/quote]
Ok, vc. se livra do caso “quedinha”. E o que vc. faz no caso “quedona” (digamos 24hs) ? Meu ponto é: tome cuidado com premissas que funcionam quando tudo está “normal”…