0

我有一个 mysql 数据库,其 max_connections 值配置为 150。我还有一个在 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个?

4

2 回答 2

0

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

于 2014-12-05T16:08:21.703 回答
0

Tomcat JDBC 连接池

你用什么连接池?

您是否使用Tomcat JDBC 连接池,而不是 Apache Commons 池?它具有检测连接泄漏或放弃打开时间超过配置的超时时间的连接的属性。

于 2014-12-05T04:56:26.263 回答