Exemplo: Utilizando o Serviço de Cronômetro com a Interface TimeObject

Este exemplo mostra a implementação do método ejbTimeout() que é chamado quando o evento planejado ocorre.

Boas Práticas Boas Práticas: O modelo de programação EJB 3.x fornece maneiras estratégicas adicionais para definir cronômetros persistentes e não persistentes dentro dos seus ambientes de negócios. Apesar da definição de cronômetros persistentes usando o método ejbTimeout com a interface TimedObject ainda ser suportada, tire vantagem das anotações EJB fáceis de implementar para criar cronômetros persistentes e não persistentes para atender as suas necessidades comerciais. Consulte o uso do serviço de timer EJB para obter informações de enterprise beans e aprender mais sobre a criação de timers persistentes e não persistentes usando anotações ou para definir os próprios métodos de tempo limite em um descritor de implementação.bprac

O método ejbTimeout pode conter qualquer código que é geralmente colocado em um método de negócios do bean. Atributos de nível do método como transação ou runAs podem ser associados a este método pelo assembler de aplicativos. Uma instância do objeto Timer que faz com que o método seja disparado é passado como um argumento para o método ejbTimeout.

import javax.ejb.Timer;
import javax.ejb.TimedObject;
import javax.ejb.TimerService;

public class MyBean implements EntityBean, TimedObject {

  // Esse método é chamado pelo contêiner EJB na expiração do Cronômetro.
  public void ejbTimeout(Timer theTimer) {

    // Qualquer código tipicamente colocado em um método EJB pode ser colocado aqui.

     String whyWasICalled = (Cadeia) theTimer.getInfo():
     System.out.println("I was called because of"+ whyWasICalled);
  } // fim do método ejbTimeout

Um Cronômetro é criado para iniciar o método ejbTimeout em 30 segundos. Um objeto de cadeia simples é transmitido na criação do Cronômetro para identificá-lo.

  // Variável da instância para manter o contexto de EJB.
  private EntityContext theEJBContext;

  // Esse método é chamado pelo contêiner EJB na criação do bean.
  public void setEntityContext(EntityContext theContext) {

    // Salvar o contexto da entidade transmitida na criação do bean.
    theEJBContext = theContext;
  } // end of method setEntityContext

  // Esse método de negócios faz com que o método ejbTimeout seja iniciado em 30 segundos.
  public void fireInThirtySeconds() throws EJBException  {

    TimerService theTimerService = theEJBContext.getTimerService();
    String aLabel = "30SecondTimeout";
    Timer theTimer = theTimerService.createTimer(30000, aLabel);
  } // fim do método fireInThirtySeconds

} // fim da classe MyBean

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_timerex_v8
Nome do arquivo: rejb_timerex_v8.html