1

由于 c3p0问题,此 Websphere 继续挂起

我们的 JSP 应用程序本身是一个遗留代码(大约 5 年前编写的),我们需要在接下来的 3 年内对其进行维护。随着 Oracle 和 WAS 的更新,现有代码变得不稳定。由于成本因素,重写不是一种选择

当我们不得不迁移到 Oracle 11 时出现了一个这样的问题。经过一些研究,我发现连接池会有所帮助。正确的解决方法是对代码进行更改,但成本是显而易见的。

使用connection pooing 一段时间后,我们发现WebSphere 中的JSP 应用程序在引入C3P0 后比平时挂起的频率更高。然而引入 c3P0 解决了一个问题Max cursors reached error in JSP + Hibernate

http://www.mchange.com/projects/c3p0/上的先决条件说 C3P0 与 Java 1.4 和 Java 1.5 配合得很好

我们正在使用 Java 1.6.x

有没有人成功让 c3P0 与 Java 1.6 一起工作?

是否有任何技巧/微调可以使 c3P0 与 Java 1.6 一起使用?

我的 C3P0 设置

 <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
   <property name="hibernate.c3p0.min_size">2</property>
   <property name="hibernate.c3p0.max_size">40</property>
   <property name="hibernate.c3p0.timeout">350</property>
   <property name="hibernate.c3p0.idle_test_period">300</property>
   <property name="hibernate.c3p0.max_statements">0</property>
   <property name="hibernate.c3p0.acquire_increment">1</property>
   <property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property>
   <property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>
4

1 回答 1

1

c3p0 通常适用于 java 1.6+。

如果您还没有升级到 c3p0 0.9.2.1 或最新的 0.9.5 预发行版,您可能想要升级(尽管早期版本在 1.6+ 中可以工作)。

您需要弄清楚为什么您的应用程序挂起。通常,在挂起期间,您应该转储线程并检查堆栈跟踪以查看发生了什么。如果线程挂起等待来自 c3p0 的连接(即在 awaitAvailable() 方法中),则您可能有连接泄漏,并且希望像在您引用的上一个挂起线程中一样对其进行调试。

于 2013-10-12T05:53:06.680 回答