Time Service是EJB2.1中的新增的内容使用Time Service时,Bean开发者只负责实现javax.ejb.TimedObject接口(直接实现
或在其父类中已经实现),然后通过可序列化的TimerHandle来引用一个timer即可。
容器的职责要复杂些:
首先,它负责TimerService,Timer,TimerHandle 接口的执行
在整个timer的生命周期范围内,容器必须为其提供可用的timer handle容器必须为timer提供正确的equal(Object obj)和hashCode()方法其次,容器负责调用ejbTimeout方法
    当timer创建时指定的到期时间或绝对时间到达时,容器必须调用ejbTimeout方
法。如果容器管理的事务属性设为RequiresNew,容器必须在调用ejbTimeout方法前启
动一新事务,如果事务失败或者回滚,容器必须重设timeout。    如果是钝化的实体bean的timer到期,容器必须在调用ejbTimeout方法前先调用
ejbActivate 和ejbLoad方法。single-event timer的ejbTimeout方法完成后,容器必须将其废除,如果随后的方法再
调用该timer,容器抛出javax.ejb.NoSuchObjectLocalException异常。    如果bean提供者在ejbTimeout内调用了setRollbackOnly方法,容器在ejbTimeout
方法调用后才回滚事务(这样就有废除timer的影响),所以容器在事务回滚后必须重
设timeout。Timer是持久性的对象,当容器崩溃时,任何single-event timer在容器重新启动之前
如果到期,那么当容器重启后,其ejbTimeout必须被调用。同理,任何interval timer如果在上述情况下到期,容器重启后,ejbTimeout必须至少
被调一次。此外容器还要负责执行cancel方法及timer的废除等任务。