java ejb TimerService:getTimers返回的已取消计时器(树脂caucho)

Posted

技术标签:

【中文标题】java ejb TimerService:getTimers返回的已取消计时器(树脂caucho)【英文标题】:java ejb TimerService: cancelled timer returned by getTimers (resin caucho) 【发布时间】:2015-07-11 20:29:48 【问题描述】:

我正在尝试取消计时器,但之后我仍然让它通过 getTimers() 返回。没关系还是只是一个 caucho 树脂虫?如何正确取消编程定时器?

@Singleton
@LocalBean
@Startup
public class TimerTest

    @Resource
    TimerService ts;
    static TimerTest inst;

    @PostConstruct
    void init()
       inst=this;
    

    public synchronized static TimerTest getInstance()
       return(inst);
    

    public Collection<Timer> getTimers()
       Collection <Timer> res=ts.getTimers();
        return(res);
    

    public void cancelAll()
       for(Timer ot: ts.getTimers())
           try
               System.out.println("Found old timer "+ot.getInfo()+", cancelling it.");
                ot.cancel();
            
            catch(Exception e) 
        
    

然后(来自 jsp):

TimerTest tt=TimerTest.getInstance();
Collection <Timer> timers=tt.getTimers();
out.println("<br>Got "+timers.size()+" timer(s)<br>");
for(Timer t: timers)

    try
    
        out.println("<br>Got timer: "+t.getInfo());
    
    catch(Exception e)
    
        out.println("Error while cancelling timers "+e);
    

取消定时器时出错 javax.ejb.NoSuchObjectLocalException:此定时器已被取消。

谢谢! )

【问题讨论】:

【参考方案1】:

在这里得到答案:http://bugs.caucho.com/view.php?id=5891

06-03-15 08:50 ferg 分配给 => ferg

06-03-15 08:50 ferg 状态新 => 关闭

06-03-15 08:50 ferg 分辨率打开 => 已修复

06-03-15 08:50 ferg 在版本 => 4.0.45 中已修复

【讨论】:

以上是关于java ejb TimerService:getTimers返回的已取消计时器(树脂caucho)的主要内容,如果未能解决你的问题,请参考以下文章

EJB Timer Service不可用,上下文取消部署失败

如何停止无尽的 EJB 3 计时器?

WAR 版本更改后运行 EJB 持久计时器

EJB3 + JEE6:啥是持久定时器?

定义1:JavaBean,EJB,POJO

Flink - Timer 与 TimerService 源码分析与详解