[英]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.