我有一个在 Tomcat 上运行的 Java webapp,带有 Hibernate 和 C3P0。所有实体类和 JPA 控制器都是使用 Netbeans 向导完成的。有一个 servlet 在调用时会在数据库中插入许多对象(使用 JPA 控制器)。
问题是用 Java VisualVM 查看我的 webapp 我发现有很多 Timers 和 com.mchange.v2.async.ThreadPoolAsynchronousRunner 类,并且随着时间的推移而增长。对于每个 Timer,都会创建 3 个线程。
所有线程和定时器都处于 WAIT 状态,我认为这个问题可能是应用程序出现 OutOfMemory 错误(Java Heap Space)的原因。产生。即使我在 MySQL Administrator 上看到当 servlet 结束任务时所有连接都已关闭,但可能某些对象仍在内存中。
C3P0 创建的 700 多个 Timeras 和 2100 个线程处于“WAIT”状态是否正常?
谢谢
以西结