JBoss Timer Service

Olá!

Estou tentando criar um Timer service no JBoss, mas algo está um pouco nebuloso para mim. Leio o mesmo artigo que está publicado em JBoss.org em todas as referências sobre o assunto que já pesquisei até agora, no entanto, aquilo não está solucionando meu problema.

Creio eu que desejo desenvolver algo simples. Meu objetivo é usar um Timer MBean para disparar a execução de uma determinada classe a cada N unidades de tempo, que é o funcionamento básico de um daemon. Ok. Timer MBean, mole. TimerService igualmente mole.

Agora, como eu subscrevo a minha classe para receber as notificações do Timer?

Eu implementei uma classe com NotificationListener e coloquei alguns System.out.println’s para simplesmente ver se funcionava a notificação a cada 5 segundos, no caso. Nada acontece. Desta forma, tudo me leva a crer que não basta apenas implementar NotificationListener, mas também preciso subscrever minha classe as notificações de um determinado Timer através de alguma configuração.

Algum dos senhores saberia me dizer como realizar esta configuração?

Agradeço desde já.

Felipe Gabriel

Qual versão do EJB você está usando?

EJB? Não estou usando EJB, kra… Só um MBean.

Obrigado.

Felipe Gabriel

Olá,

já deu uma olhada na Wiki do JBoss?

http://www.jboss.org/community/docs/DOC-12405

[]s
Bruno Rossetto Machado

Prezado Bruno,

Esse é exatamente o texto que eu indiquei estar apresentado em todos os sites que visitei. No entanto, este exemplo não me ajudou a solucionar o problema. A minha dúvida de como subscrever a minha classe ao notificador continuou.

De toda forma, agradeço.

O MBean de TimerService é feito para trabalhar exclusivamente com outro MBean (task a ser agendada), logo se você quer partir para este tipo de solução seria interessante você conhecer bem programação MBean. Desenvolvimento de MBeans não é a coisa mais trivial do mundo e só vejo vantagem se você necessitar expor estes serviços para alguma interface JMX. Na maioria das vezes, uma implementação (que é bem mais tranquilade se fazer) de um EJB Tmer ou uso de um framework como o Quartz pode ser tudo que você precisa.