java - 高连接问题

标签 java struts-1 c3p0

我使用 Struts 1.1 和普通 JDBC 的产品 Java EE 应用程序托管在 OC4J (10g) 应用服务器中。

我的实时应用程序中遇到了非常奇怪的问题。有时它会打开大约 1000 个连接。我使用 C3P0 作为连接池库,并将最大连接限制设置为 1000 个连接。其实正常情况下500个连接就足够了。我有一个作业每 30 秒运行一次,记录池中繁忙、空闲和总连接的数量。即使在高峰时间,此计数也不会超过 200 个连接。但是有时它会突然打开多达 1000 个连接。日志显示当时大约有 800 个连接处于繁忙状态。又过了 30 秒,计数恢复正常。

我还会记录获取和释放连接的时间(例如获取 com.mchange.v2.c3p0.impl.NewProxyConnection@1fa6aea 并随后释放它),我可以确认此过程中没有泄漏。所有获取的连接都被释放回池中。

我不确定以上信息是否足以回答。如果需要额外信息,请告诉我。

最佳答案

您的应用程序负载测试是否针对约 800-1000 个并发用户?

这可能是因为您的数据库在峰值负载期间响应请求时成为瓶颈。如果使用tomcat的jdbc连接池,它有属性来检测connection leaks或放弃打开时间长于配置的超时的连接。引用this链接。

关于java - 高连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308172/

相关文章:

java - Action 类是否具有像formbean这样的范围

java - 如何对 Db 的列求和

java - 用java获取Mysql数据库创建日期

java - 使用 displaytag 和 Struts 1.3 的 JSP 表格中的按钮列

windows-7 - 跨操作系统 POST 转换为 GET

java - 在 Hibernate 3.2 中使用连接池 (c3p0-0.9.1.2) 时出现异常且应用程序无法连接 MySqL 数据库?

spring - 如何在 Spring+Hibernate+C3P0 环境中构建/获取 ConnectionProvider?

java - c3p0 maxIdleTime 和 mysql 的 wait_timeout 一样吗?

java - 如何将 Deeplearning4j 的 UIServer 端口从 9000 更改为其他端口?

java - Java 中是否有 "in"Python 关键字等效项?