首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能删除id: xxx的定时器。

不能删除id: xxx的定时器。
EN

Stack Overflow用户
提问于 2015-08-29 13:31:14
回答 1查看 1.3K关注 0票数 1

在GlassFish 4.1/Java 7中的单例会话bean中使用EJB计时器,如下所示。

代码语言:javascript
复制
@Singleton
@LocalBean
@Startup
public class BackgroundJobManager {

    @PersistenceContext
    private EntityManager entityManager;

    @PostConstruct
    private void init() {
        // Do something.
    }

    @Schedule(hour = "*/1", minute = "0", second = "0", persistent = false)
    public void doHourlyJob() {
        // Do something hourly.
    }

    @Schedule(hour = "*", minute = "*/1", second = "0", persistent = false)
    private void doOnEveryMinute() {
        // Do something on every minute.
    }
}

尽管日志级别是INFO,但在部署应用程序时,服务器终端上会出现以下一些不稳定的警告。

代码语言:javascript
复制
Info:   No timers to be deleted for id: 94427432094072832
Info:   No timers to be deleted for id: 94427432094072832

什么意思?它是可以避免的,还是容器试图对一些严重的问题发出警告(在这种情况下是否有任何修复)?

服务器还会在启动时记录以下行。

代码语言:javascript
复制
Info:   Portable JNDI names for EJB TimerBean: [java:global/ejb-timer-service-app/TimerBean, java:global/ejb-timer-service-app/TimerBean!org.glassfish.ejb.persistent.timer.TimerLocal]
Info:   Loading application [ejb-timer-service-app] at [/ejb-timer-service-app]
Info:   ejb.timer_service_started
Info:   ==> Restoring Timers ... 
Info:   EclipseLink, version: Eclipse Persistence Services - 2.6.0.v20150309-bf26070
Info:   /file:/C:/Program Files/glassfish-4.1/glassfish/domains/domain1/applications/ejb-timer-service-app/WEB-INF/classes/___EJB__Timer__App login successful
Info:   There are no EJB Timers owned by this server
Info:   <== ... Timers Restored.
EN

回答 1

Stack Overflow用户

发布于 2015-12-14 22:53:49

这是目标IDE NetBeans (是的,不是容器GlassFish本身)中的一个怪癖,只有当在IDE上关闭“保存整个重新部署的会话”选项时才是可复制的,该选项必须在NetBeans 8.1之前完成。

(右击服务器并从子菜单中选择"property“选项似乎打开了上面的框架)。

在NetBeans 8.1之前,打开这个选项是不可能的。这样做会抛出一个exception。因此,在随后的重新部署中,会话不被维护。因此,这些消息就会出现。

这在NetBeans 8.1中不再存在。重新部署应用程序会发出以下安全消息。

代码语言:javascript
复制
Info:   keepstate options resolved to true, saving appId 95015048510636032 for application Project.
Info:   keepstate options resolved to true, saving appId 95015048510636032 for application Project.
Finer:   initialize identitymaps
Info:   Timers will not be destroyed since keepstate is true for application Project
Info:   Timers will not be destroyed since keepstate is true for application Project

因此,在重新部署期间,持久性定时器是活动的。当应用程序被重新部署时,它们不会被销毁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32286602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档