管理自動建立的 EJB 持續性計時器

應用程式或模組會在 XML 部署描述子中使用 javax.ejb.Schedule 註釋或 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.embeddedcreateDatabase="create" databaseName="${server.config.dir}/data/EJBTimerDB"/>
    </dataSource>
    <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/>
    <library id="DerbyLib">
         <filename="${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() 方法會同時移除自動建立的計時器,以及指出計時器已建立的指示。下次當伺服器啟動應用程式時,就會建立自動建立的持續性計時器。


指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_ejb_perstimer_manage_auto
檔名:twlp_ejb_perstimer_manage_auto.html