WEB开发网
开发学院操作系统Linux/Unix 如何实现WebSphere Application Server 6集群环境... 阅读

如何实现WebSphere Application Server 6集群环境下的定时服务

 2010-09-27 08:31:05 来源:WEB开发网   
核心提示: 在EJB中的ejbContext增加了一个方法.getTimerService();用于获得TimerService类,但这个方法不能在setEntityContext()、setSessionContext()、setMessageContext()方法中调用,如何实现WebSphere Ap

在EJB中的ejbContext增加了一个方法.getTimerService();用于获得TimerService类。但这个方法不能在setEntityContext()、setSessionContext()、setMessageContext()方法中调用。

下面列出了三个接口的定义:

public interface TimedObject{
public void ejbTimeout(Timer timer);
}
public interface TimerService{
public Timer createTimer(Date expiration,Serializable info);
public Timer createTimer(long duration,Serialzable info);
public Timer createTimer(Date initalExpiration,long intervalDuration,Serializable info);
public Timer createTimer(long initalDuration,long intevalDuration,Serializable info);
public java.util.Collection getTimers();
}
public interface Timer{
public void cancel();
public java.io.Serializable getInfo();
public Date getNextTimeout();
public long getTimeRemaining();
public TimerHandle getHandle();//这是一个local对象,不能传到remote client端使用
}

对于Stateless SessionBean来说,不要在ejbCreate()和ejbRemove()中设置Timer。主要是因为ejbCreate和ejbRemove调用的时间和次数都因Container Vendor而异。可能导致错误设置Timer。

对MessageDriven Bean 而言,和Stateless SessionBean的情况基本相似。但是设置Timer应该在onMessage()里面。通过一个JMS来进行触发。

ejbTimedout是一个回调方法,执行具体的商业逻辑,那么怎样设置什么时间触发这个方法呢,我们利用javax.ejb.TimerSevice。该对象我们可以从EJBContext中获得该对象实例。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:如何 实现 WebSphere

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接