Web 应用程序似乎启动了一个名为 [HikariPool-1 管家] 的线程,但未能阻止它 [英] The web application appears to have started a thread named [HikariPool-1 housekeeper] but has failed to stop it
问题描述
我正在尝试在 Tomcat 8.5 中使用 HikariCP JNDI 数据源工厂,但是当它关闭时我收到以下警告:
o.a.c.loader.WebappClassLoaderBase :Web 应用程序 [ROOT] 似乎启动了一个名为 [HikariPool-1 管家] 的线程,但未能阻止它.这很可能造成内存泄漏.线程的堆栈跟踪:sun.misc.Unsafe.park(本地方法)java.util.concurrent.locks.LockSupport.parkNanos(来源不明)java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(来源不明)java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(来源不明)java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(来源不明)java.util.concurrent.ThreadPoolExecutor.getTask(来源不明)java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)java.util.concurrent.ThreadPoolExecutor$Worker.run(来源不明)java.lang.Thread.run(来源不明)
我的 Hiraki 配置是按照 JNDI 数据源工厂(Tomcat 等)设置的 文档,是这样的:
我找到了这个 link 但它没有帮助,因为我使用 Hiraki 作为 Tomcat 中的资源.
我使用的是 Tomcat 8.5HikariCP 2.5.1
有什么帮助吗?谢谢.
您需要在资源末尾添加以下内容:
<块引用> closeMethod="close"/>
I am trying use HikariCP JNDI DataSource Factory within Tomcat 8.5 but when it shutdown I'm getting these warning:
o.a.c.loader.WebappClassLoaderBase : The web application [ROOT] appears to have started a thread named [HikariPool-1 housekeeper] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
My Hiraki configuration was setup following the JNDI DataSource Factory (Tomcat, etc.) document, and is something like this:
<Resource name="******" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="5"
maximumPoolSize="10"
connectionTimeout="300000"
driverClassName="org.postgresql.Driver"
jdbcUrl="jdbc:postgresql://******"
dataSource.implicitCachingEnabled="true"
dataSource.user="******"
dataSource.password="******" />
I've found this link but it doesn't help because I'm using Hiraki as a resource inside Tomcat.
I'm using Tomcat 8.5 HikariCP 2.5.1
Any help? Thanks.
All you need to add is this at the end of your Resource:
closeMethod="close"/>
这篇关于Web 应用程序似乎启动了一个名为 [HikariPool-1 管家] 的线程,但未能阻止它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!