【问题标题】:Too few connections from Tomcat Application来自 Tomcat 应用程序的连接太少
【发布时间】:2014-12-05 01:06:17
【问题描述】:

我有一个配置为 max_connections 值为 150 的 mysql 数据库。我还有一个在 Tomcat 5.5 中运行的 Java 6 Web 应用程序,配置如下:

<Resource name="jdbc/myDB"
type="javax.sql.DataSource"
driver="com.mysql.jdbc.Driver"
username="username"
password="password"
maxActive="100"
maxIdle="100"
maxWait="-1"
removeAbandoned="true"
removeAbandonedTimeout="300"
logAbandoned="true"
url="jdbc:mysql://localhost:3306/myDB?autoreconnect=true"
validationQuery="SELECT 1" />

这个应用程序没有使用任何第 3 方框架,只是基本的 java servlet。我在 java 应用程序中的某些代码中有一个错误,它没有正确地从池中释放打开的 mysql 连接。我正在努力识别和修复这些问题。但与此同时,我需要弄清楚为什么最多只允许 25 个连接到 mysql。在这 25 个连接用完后,应用程序变得无响应。

谁能帮我弄清楚为什么mysql和tomcat都配置为100多个连接,但一次只允许25个?

【问题讨论】:

  • 您可能在应用服务器中配置了一个数据库连接池,用于管理连接的重用。
  • @Rob,我在我的问题中添加了我的连接池设置,你觉得有什么问题吗?

标签: java servlets tomcat5.5 mysqlconnection


【解决方案1】:

Tomcat JDBC 连接池

你使用什么连接池?

您使用Tomcat JDBC Connection Pool,而不是Apache Commons 池吗?它具有detect connection leaks 或放弃连接打开时间超过配置的超时时间的属性。

【讨论】:

    【解决方案2】:

    MySQL 的 max_connections 设置为 150,但 max_user_connections 设置为 25,这是此处的限制因素。我从 my.cnf 中删除了此设置,以将其恢复为默认值无限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      相关资源
      最近更新 更多