来自Tomcat应用程序的连接太少



我有一个配置了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" />

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

有人可以帮我弄清楚为什么 mysql 和 tomcat 都配置为 100+ 连接,但一次只允许 25 个连接吗?

Tomcat JDBC 连接池

您使用什么连接池?

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

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

最新更新