繁体   English   中英

Memory 停止 Tomcat 服务器 9 时泄漏(战争文件 Grails)

[英]Memory Leak while Stopping Tomcat Server 9 (War File Grails)

我已经使用 grails WAR 生成了 WAR 文件,并将这个 WAR 文件部署在 tomcat 服务器上。 我有来自 grails 的默认调度程序和在 java 中使用 Quartz 的自定义调度程序 Quartz.properties 文件在资源中定义。 好吧,它工作正常,但是当我关闭服务器时,它在关闭线程时显示了一些问题。

I have grails ScheduleJob which runs every minute, and this execute a Java Class and this java class reads database and based on the info schedule new job using quartz. Quartz Scheduler不断调度新的Job,Quartz Scheduler没办法关闭,grailsScheduler(Trigger) -> JavaClass(Quartz Scheuler)。 Grails scheduler is continuously running and trigger the Java class which uses the Quartz Scheduler, When I shutdown the tomcat, Quartz Thread is still active, I have no way to Call the Quartz Scheduler shutdown method. 只有当用户关闭 tomcat 服务器,但不知道怎么做时,我们才能调用 Quartz Scheduler 关闭方法?

Grails代码:

class ScheduleJob {     static triggers = {        simple repeatInterval: 100000 // execute job once in 1 minute     }      def execute() {                 new ScheduleIBJob().schedule()           } }

整个 java 代码的一部分,

public static Scheduler scheduler = null;   public static Scheduler getSchedulerJobObject() throws SchedulerException {         if (scheduler == null) {            scheduler = new StdSchedulerFactory().getScheduler();           scheduler.start();          }               return scheduler;   }
org.quartz.scheduler.instanceName=IB_Scheduler
org.quartz.scheduler.instanceId=99199
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=3
org.quartz.context.key.QuartzTopic=QuartzPorperties
org.quartz.scheduler.makeSchedulerThreadDaemon=true
org.quartz.threadPool.makeThreadsDaemons=true
org.quartz.dataSource.NAME.jndiURL=java:comp/env/jdbc/db 

这是错误

04-Jun-2021 14:14:20.758 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Jun-2021 14:14:20.777 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [288,864] milliseconds
04-Jun-2021 14:14:35.664 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
04-Jun-2021 14:14:35.665 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
04-Jun-2021 14:14:36.111 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
04-Jun-2021 14:14:36.807 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [Scheduler-2.0.0] appears to have started a thread named [IB_Scheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
04-Jun-2021 14:14:36.808 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [Scheduler-2.0.0] appears to have started a thread named [IB_Scheduler_Worker-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
04-Jun-2021 14:14:36.812 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [Scheduler-2.0.0] appears to have started a thread named [IB_Scheduler_Worker-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
04-Jun-2021 14:14:36.814 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [Scheduler-2.0.0] appears to have started a thread named [IB_Scheduler_QuartzSchedulerThread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:410)
04-Jun-2021 14:14:36.866 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
04-Jun-2021 14:14:36.873 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM