我试图在Tomcat 8.5中使用HikariCP JNDI数据源工厂,但当它关闭时,我收到以下警告:
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)
我的Hiraki配置是根据JNDI数据源工厂(Tomcat等)文档设置的,如下所示:
<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="******" />
我找到了这个链接,但它没有帮助,因为我在Tomcat中使用Hiraki作为资源。
我使用的是Tomcat 8.5 HikariCP 2.5.1
有什么帮助吗?谢谢
在我的例子中,我在字符串类型上有@Enumerated注释。
@Enumerated(EnumType.STRING)
@Column(nullable = false, name = "transaction_type")
private String transactionType;
当我使用纯字符串时,我删除了@枚举行,它成功了。
您只需要在资源末尾添加以下内容:
closeMethod="close"/>
我遇到了完全相同的问题,至少错误信息是相同的。错误消息表示Hikari池配置有问题,但实际上您的Tomcat无法启动。一个简单的解决方案是检查应用程序是否存在任何运行时错误。在我的例子中,在我的Rest控制器中,我用相同的URIendpoint声明了相同的HTTP方法,但方法名不同。因此,这不是编译时错误,但在构建Tomcat时失败,导致HikariPool抛出错误消息。
希望有帮助。如果这不起作用,请发表评论,也许我可以帮上忙。
我在Windows下使用PostgreSQL9.5安装SN5.5。不幸的是,我打错误"Webapp没有启动"。 下面是完整的堆栈跟踪。我想我首先在“Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextList
问题内容: 我的应用程序正在发生什么是有道理的,但我不知道如何解决。这是我的应用程序的简要说明:计时器窗口应显示在屏幕的右下角,并显示实时时间。一个小时后,它应该执行一些操作(我还没有决定要执行的操作)。我面临的问题是,在 Timer.java中, 当我刷新实时计时器的秒数时,我正在使用线程睡眠,这阻止了我的所有应用程序继续执行,因此没有窗口显示。 这是带有一些注释的代码: TimerFram
Apache Tomcat说过很多次: web应用程序[/MyServlet]似乎已启动名为[pool-61-thread-2]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这样危险吗?servlet应该能够每天处理10.000个请求。如何关闭线程时,他们已经完成?
问题内容: 我正在比较测试程序上的两个变体。两者都在具有四个内核的计算机上以4线程运行。 在“模式1”下,我非常类似于执行程序服务来使用池。我把一堆任务扔了进去。与普通的固定线程执行器服务相比,我获得了更好的性能(即使有对Lucene的调用,该调用在其中执行了一些I / O)。 这里没有分而治之。从字面上看,我知道 在“模式2”中,我向池提交一个任务,然后在该任务中调用ForkJoinTask.i
我正试图在我的tomcat manager上启动我的网络应用程序,但它没有启动。我正在读取webapp的日志文件,出现以下错误: 8-giu-2017 9.41.12org.apache.catalina.core.标准上下文启动GRAVE:错误listenerStart 8-giu-2017 9.41.12org.apache.catalina.core.标准上下文启动GRAVE: Contex
问题内容: 我正在尝试在我正在处理的Python项目中使用线程,但是线程似乎没有按照我的代码的预期运行。似乎所有线程都按顺序运行(即,线程2在线程1结束后开始,它们不是同时启动)。我编写了一个简单的脚本来对此进行测试,并且该脚本也按顺序运行线程。 这是我从运行它得到的输出: 循环的迭代次数更多时,观察到相同的行为。 我尝试搜索网络和较早的SO答案,但找不到任何有帮助的方法。有人可以指出这段代码有什