자동으로 작성된 EJB 지속적 타이머 관리

애플리케이션 또는 모듈이 XML 배치 디스크립터에서 javax.ejb.Schedule 어노테이션 또는 스케줄 요소를 사용하여 애플리케이션 서버가 EJB 타이머를 자동으로 작성하도록 지시합니다. MBean은 자동으로 작성된 EJB 지속적 타이머의 작성을 관리하도록 제공됩니다.

이 태스크 정보

Liberty 서버는 애플리케이션이 서버 프로세스 내에서 처음으로 시작될 때 애플리케이션에 대해 EJB 자동 지속적 타이머를 작성합니다. 타이머 및 이 타이머가 작성되었다는 표시가 EJB 타이머 서비스에 구성된 PersistentExecutor와 연관된 데이터베이스에 저장됩니다. 애플리케이션의 자동으로 작성되는 지속적 타이머가 한 번 작성되면 데이터베이스에서 작성된 표시를 특별히 지우는 조치가 수행될 때까지 다시 작성되지 않습니다. 애플리케이션에 대해 자동으로 작성된 모든 타이머가 제거된 경우에도, Liberty 서버는 타이머가 작성되었다는 표시 역시 제거될 때까지 이를 다시 작성하지 않습니다.

자동으로 작성되는 타이머가 작성되었다는 표시를 지우려면 타이머 데이터베이스를 수동으로 지우거나 EJB 타이머 서비스 MBean을 사용해야 합니다. 프로그래밍 방식으로 또는 JConsole과 같은 도구를 통해 EJB 타이머 서비스 MBean을 사용할 수 있습니다. EJB 타이머 서비스 MBean의 인터페이스는 com.ibm.websphere.ejbcontainer.mbean.EJBPersistentTimerServiceMXBean입니다.

프로시저

  1. server.xml 파일에서 REST 커넥터 및 지속적 타이머를 지원하는 EJB 기능을 포함하도록 애플리케이션 서버를 구성하십시오.
    <featureManager>
         <feature>servlet-3.1</feature>
         <feature>ejbPersistentTimer-3.2</feature>
         <feature>jdbc-4.1</feature>
         <feature>restConnector-1.0</feature>
    </featureManager>
  2. server.xml 파일에 EJB 타이머 서비스의 데이터베이스를 포함하도록 애플리케이션 서버를 구성하십시오.
    <dataSource id="DefaultDataSource" jdbcDriverRef="DerbyEmbedded">
         <properties.derby.embedded createDatabase="create" databaseName="${server.config.dir}/data/EJBTimerDB"/>
    </dataSource>
    <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/>
    <library id="DerbyLib">
         <file name="${server.config.dir}/derby/derby.jar"/>
    </library>
  3. MBean 서버 연결을 획득하십시오.
  4. EJB 지속적 타이머 서비스 MBean을 획득하십시오.
    import javax.management.MBeanServerConnection;
    import avax.management.ObjectName;
    import com.ibm.websphere.ejbcontainer.mbean.EJBPersistentTimerServiceMXBean;
    ...
    MBeanServerConnection mbsc = <step #3>;
    ObjectName on = new
    ObjectName("WebSphere:feature=ejbPersistentTimer,type=EJBPersistentTimerService,name=EJBPersistentTimerService");
    EJBPersistentTimerServiceMXBean timerServiceMBean =
         JMX.newMXBeanProxy(mbsc, on, EJBPersistentTimerServiceMXBean.class);
  5. 애플리케이션에 대한 자동으로 작성된 지속적 타이머를 제거하십시오.
    timerServiceMBean.removeAutomaticTimers("<application name>");

    MBean의 removeAutomaticTimers() 메소드가 자동으로 작성된 타이머 및 작성되었다는 표시 둘 다를 제거합니다. 다음에 서버가 애플리케이션을 시작하면 자동으로 작성된 지속적 타이머가 작성됩니다.


주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_ejb_perstimer_manage_auto.html