Java 为什么配置c3p0后出现内存泄漏异常?

Java 为什么配置c3p0后出现内存泄漏异常?,java,mysql,tomcat,memory-leaks,c3p0,Java,Mysql,Tomcat,Memory Leaks,C3p0,我在mysql中使用java、GWT和hibernate。为了避免太多的连接异常,我正在应用程序中配置c3p0,但在配置之后,当我将应用程序部署到tomcat并运行应用程序时,在5到10个请求应用程序崩溃后,在tomcat日志中,我会重复出现以下异常: org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks SEVERE: The web application [/war] created a Threa

我在mysql中使用java、GWT和hibernate。为了避免太多的连接异常,我正在应用程序中配置c3p0,但在配置之后,当我将应用程序部署到tomcat并运行应用程序时,在5到10个请求应用程序崩溃后,在tomcat日志中,我会重复出现以下异常:

org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [/war] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@1d2aa39]) and a value of type [com.google.inject.servlet.ServletDefinition$2] (value [com.google.inject.servlet.ServletDefinition$2@ef3675]) but failed to remove it when the web application was stopped.Threads are going to be renewed over time to try and avoid a probable memory leak.
我的c3p0配置如下:

<property name="connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider</property>
   <property name="hibernate.connection.autoReconnect">true</property>
   <property name="hibernate.c3p0.acquire_increment">3</property>
   <property name="hibernate.c3p0.idle_test_period">5</property>
   <property name="hibernate.c3p0.max_size">50</property>
   <property name="hibernate.c3p0.max_statements">0</property>
   <property name="hibernate.c3p0.min_size">0</property>
   <property name="hibernate.c3p0.timeout">5</property>
   <property name="hibernate.c3p0.idleConnectionTestPeriod">5</property>
org.hibernate.connection.C3P0ConnectionProvider
真的
3.
5.
50
0
0
5.
5.
如果有人知道解决方案,请帮助我。。。
提前感谢。

这不是你崩溃的原因,而是它的效果-你的应用程序由于未知原因崩溃,留下了一片混乱。错误与混乱有关。

这不是你崩溃的原因,而是它的影响-你的应用程序由于未知原因崩溃,留下了混乱。该错误与该混乱有关。

这是在重新部署应用程序时发生的与类加载器相关的内存泄漏

有关此类内存泄漏的详细信息,请参阅


您的问题是GoogleGuice。

这是一个与类加载器相关的内存泄漏,在重新部署应用程序时发生

有关此类内存泄漏的详细信息,请参阅


您案例中的问题是Google Guice。

这不是异常的原因,而是异常的结果。应用程序崩溃的最可能原因是代码内存泄漏。在执行任何操作之前,请确保您的连接已在finally block中正确关闭…

这不是异常的原因,而是异常的结果。应用程序崩溃的最可能原因是代码内存泄漏。在执行任何操作之前,请确保您的连接在finally block中已正确关闭…

Marko:当这些异常发生后,我的应用程序将崩溃。不是为了这个应用,我也在另一个应用中尝试了这个…我在tomcat中也遇到了同样的异常。tomcat只是通知您,由于废弃的
ThreadLocal
s,可能存在内存泄漏。它正在采取积极措施打击这一泄漏。这些措施并没有导致你的崩溃,相反。马尔科:当这些异常发生之后,我的应用程序就崩溃了。不是为了这个应用,我也在另一个应用中尝试了这个…我在tomcat中也遇到了同样的异常。tomcat只是通知您,由于废弃的
ThreadLocal
s,可能存在内存泄漏。它正在采取积极措施打击这一泄漏。这些措施并没有导致您的崩溃,相反,请发布“应用程序崩溃”是什么意思?正如Marko所指出的,Tomcat发出的严重警告并不是导致应用程序崩溃的原因,因为在此异常之后,任何数据库请求都不会被调用……它会反复抛出内存泄漏异常。抱歉,伙计,您没有具体说明。首先,你的问题也不例外。只是严重的日志信息。其次,“数据库请求未被调用”在java意义上并不是一个例外。第三,java中没有“内存泄漏异常”这样的东西。如果您请求帮助,请提供确切信息。请张贴,什么是“应用程序崩溃”?正如Marko所指出的,Tomcat发出的严重警告并不是导致应用程序崩溃的原因,因为在此异常之后,任何数据库请求都不会被调用……它会反复抛出内存泄漏异常。抱歉,伙计,您没有具体说明。首先,你的问题也不例外。只是严重的日志信息。其次,“数据库请求未被调用”在java意义上并不是一个例外。第三,java中没有“内存泄漏异常”这样的东西。如果你需要帮助,请提供准确的信息。英戈·凯格尔:我认为你是对的,这是与guice有关的问题…:-(英戈·凯格尔:我认为你是对的,这是与guice有关的问题…:-(