Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(EJBコンテナ)
Timer Serviceを使用する場合のアプリケーションの実装内容を示します。
これらの処理を実装した例と,実装時の注意事項を示します。
アノテーションを使用した場合の実装例を示します。この例では,Timeoutアノテーション(@Timeout)でタイムアウトメソッド(myTimeout)を指定しています。
@Stateless public class TimerSessionBean{
@Resource TimerService timerService;
public void createMyTimer(long intervalDuration){
Timer timer = timerService.createTimer
(intervalDuration, "MyTimer");
}
@Timeout public void myTimeout(Timer timer) {
System.out.println("TimerSessionBean: myTimeout ");
}
public void cancelTimers(){
Collection<Timer> timers = timerService.getTimers();
for(Timer timer: timers) {
timer.cancel();
}
}
}
|
EJBContextのサブクラスであるSessionContextを利用して,TimerServiceオブジェクトを取得する例を示します。この例では,TimedObjectインタフェースをインプリメントして実装しています。
public class TimerSessionBean implements SessionBean, TimedObject{
private SessionContext context;
public void createMyTimer(long intervalDuration) {
System.out.println("TimerSessionBean: start createTimer ");
TimerService timerService = context.getTimerService();
Timer timer = timerService.createTimer
(intervalDuration, "MyTimer");
}
public void ejbTimeout(Timer timer) {
System.out.println("TimerSessionBean: ejbTimeout ");
}
public void setSessionContext(SessionContext sc) {
context = sc;
}
}
|
JNDIを使用して,TimerServiceオブジェクトを取得する例を示します。この例では,TimedObjectインタフェースをインプリメントして実装しています。
public class TimerSessionBean implements SessionBean, TimedObject{
private SessionContext context;
public void createMyTimer(long intervalDuration) {
System.out.println("TimerSessionBean: start createTimer ");
InitialContext context = new InitialContext();
TimerService timerService =
(TimerService)context.lookup("java:comp/TimerService");
Timer timer = timerService.createTimer
(intervalDuration, "MyTimer");
}
public void ejbTimeout(Timer timer){
System.out.println("TimerSessionBean: ejbTimeout ");
}
}
|
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.