Java Tomcat8-MySQL在MySQL工作台中看到的每个TomcatInstance最多8个连接

Java Tomcat8-MySQL在MySQL工作台中看到的每个TomcatInstance最多8个连接,java,mysql,hibernate,tomcat,jdbc,Java,Mysql,Hibernate,Tomcat,Jdbc,问题: JDBC连接池似乎没有所需的初始连接数 它也没有增长到允许的最大值(每个Tomcat实例最多打开8个连接),因此许多客户端在等待sql连接时被阻塞 对于每个Tomcat实例,使用此命令时,在sql server上最多可以看到8个连接: show processlist; 如果我将initialSize设置为8以下的任何值,那么tomcat将创建该数量的连接 initialSize==1-在Tomcat启动时创建1个连接 initialSize==5-在Tomcat启动时创建了5个连接

问题:

JDBC连接池似乎没有所需的初始连接数

它也没有增长到允许的最大值(每个Tomcat实例最多打开8个连接),因此许多客户端在等待sql连接时被阻塞

对于每个Tomcat实例,使用此命令时,在sql server上最多可以看到8个连接:

show processlist;
如果我将initialSize设置为8以下的任何值,那么tomcat将创建该数量的连接

  • initialSize==1-在Tomcat启动时创建1个连接
  • initialSize==5-在Tomcat启动时创建了5个连接
  • initialSize>=9-在Tomcat启动时创建8个连接
存在的连接是功能性的,应用程序可以工作,而来自客户端的请求很少

在server.xml中:

        <Resource auth="Container"
            driverClassName="com.mysql.jdbc.Driver"
            closeMethod="close"
            validationInterval="34000"
            maxWait="3000"
            initialSize="50"
            name="XXX"
            password="XXX"
            removeAbandoned="true"
            removeAbandonedTimeout="350" testWhileIdle="true"
            type="javax.sql.DataSource"
            url="jdbc:mysql://XXXXXXX:3306/XXXXX?characterEncoding=UTF-8"
            username="XXX"
            removeAbandonedOnBorrow="true"
            removeAbandonedOnMaintenance="true"
            validationQuery="SELECT 1"
        />

补充资料 显示全局变量,如“%connections%”

  • 最大连接数1000
  • 最大用户连接数0

听起来您也只需要设置
maxTotal
配置选项,例如:

maxTotal="50"
我这样说是基于:

参数:maxTotal
默认值:8
说明:可同时从此池中分配的最大活动连接数,如果没有限制,则为负数

如果你得到的最大总数是8,我并不奇怪,将初始值增加到8以上并没有任何区别

您可能还需要设置
maxIdle