EJBタイマーサービスを利用したいEJBアプリケーションは、Enterprise Beanクラスにjavax.ejb.TimedObjectインタフェースを実装する必要があります。EJBタイマーサービスを利用するEnterprise Bean自身かその親クラスで実装してください。
javax.ejb.TimedObjectインタフェースにはejbTimeoutメソッドが一つのみ宣言されています。
以下のようにEnterprise Beanに実装してください。
例
実装例(Stateless Session Beanの場合)
public class Enterprise Bean名 implements javax.ejb.SessionBean, javax.ejb.TimedObject { ・・・ public void ejbTimeout(javax.ejb.Timer timer) { // 予定時刻に実行するビジネスロジックを // ここに記述します } }
EJBタイマーサービスに登録した予定時刻になるとEJBコンテナはejbTimeoutメソッドを呼び出します。予定時刻に実行したいビジネスロジックをejbTimeoutメソッドに記述してください。
ejbTimeoutメソッドから実行可能なメソッドは以下を参照してください。
STATELESS Session Beanの場合
“第12章 Session Beanの実装”の“12.6.3 Enterprise Beanクラスのメソッドが実行可能な操作”
Entity Beanの場合
“第13章 Entity Beanの実装”の“13.6.14 Enterprise Beanクラスのメソッドが実行可能な操作”
Message-driven Beanの場合
“第14章 Message-driven Beanの実装”の“14.2.3 Enterprise Beanクラスのメソッドが実行可能な操作”