jdbc - Tomcat JDBC连接池,创建连接数大于maxActive

标签 jdbc tomcat8 mysql-5.7 connection-pool

我正在使用 tomcat 8.0.39、mysql 5.7 服务器和 mysql 连接器 5.1.34 这是我的 context.xml 配置

<Resource
          name="jdbc/provider"
          auth="Container"
          driverClassName="com.mysql.jdbc.ReplicationDriver"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
           url="******"
           username="******"
           password="******"
           maxActive="40"
           maxIdle="10"
           minIdle="10"
           maxWait="4500"
           maxAge="21600000"
           minEvictableIdleTimeMillis="60000"
           timeBetweenEvictionRunsMillis="5000"
           validationInterval="0"
           removeAbandoned="true"
           removeAbandonedTimeout="60"
           validationQuery="SELECT 1"
           testOnBorrow="true"
           type="javax.sql.DataSource"
           logAbandoned="true"/>

连接数增加到 130,但预计最多为 40

最佳答案

Tomcat 已将其默认连接池库更新为 Tomcat 8 中的 Apache Commons DBCP 2.x。Tomcat 7 及更早版本使用 DBCP 1.x。 DDBCP 2 使用 maxTotal 而不是 maxActive 来限制连接数。还有其他显着变化。请阅读Tomcat 8 migration guide数据库连接池部分。

关于jdbc - Tomcat JDBC连接池,创建连接数大于maxActive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51493830/

相关文章:

java - FilteredRowSet 谓词评估方法

hibernate - 如何使用 Postgres 和 Tomcat7 JDBC 池配置 PreparedStatement 缓存?

java - 如何使用Google OAuth2实现Tomcat 8.0容器级身份验证?

java - com.github.dandelion.datatables.core.configuration.Configuration.applyConfiguration 处的 NullpointerException 仅在 Tomcat 8 上(在 Tomcat 7 上工作正常)

mysql - Odd 无法添加外键约束

java - 无法获取所需的 JDBC 异常

java - 是否可以使用 JDBC 将数据从 Oracle 传输到 Teradata,反之亦然?

docker - docker组成nginx和tomcat,仅在互联网上公开nginx

mysql-5.7 - Mysql陷入密码过期循环

MySQL JSON_OBJECT 而不是 GROUP_CONCAT