Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql HikariCP在addConnection()上冻结_Mysql_Hikaricp - Fatal编程技术网

Mysql HikariCP在addConnection()上冻结

Mysql HikariCP在addConnection()上冻结,mysql,hikaricp,Mysql,Hikaricp,我正在使用Hikari连接池,我注意到Hikari连接池冻结。我接受了线程转储,并意识到它在addConnection()方法上冻结 这是我初始化Hikariool的线程堆栈跟踪 "main" prio=10 tid=0x00007fc07c00c800 nid=0x3105 runnable [0x00007fc08275f000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketR

我正在使用Hikari连接池,我注意到Hikari连接池冻结。我接受了线程转储,并意识到它在addConnection()方法上冻结

这是我初始化Hikariool的线程堆栈跟踪

"main" prio=10 tid=0x00007fc07c00c800 nid=0x3105 runnable [0x00007fc08275f000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:152)
        at java.net.SocketInputStream.read(SocketInputStream.java:122)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
        - locked <0x00000007d9f32408> (a com.mysql.jdbc.util.ReadAheadInputStream)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
        at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:620)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1102)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
        - locked <0x00000007d9f275b8> (a com.mysql.jdbc.JDBC4Connection)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.GeneratedConstructorAccessor39.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
        at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:440)
        at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:138)
        at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:108)
        at com.zaxxer.hikari.HikariPool.addConnection(HikariPool.java:382)
        at com.zaxxer.hikari.HikariPool.fillPool(HikariPool.java:315)
        at com.zaxxer.hikari.HikariPool.<init>(HikariPool.java:135)
        at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:51)
“主”优先级=10 tid=0x00007fc07c00c800 nid=0x3105可运行[0x00007fc08275f000]
java.lang.Thread.State:可运行
位于java.net.SocketInputStream.socketRead0(本机方法)
位于java.net.SocketInputStream.read(SocketInputStream.java:152)
位于java.net.SocketInputStream.read(SocketInputStream.java:122)
位于com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
如有必要,请访问com.mysql.jdbc.util.ReadAheadInputStream.readfromfunderyingstream(ReadAheadInputStream.java:161)
位于com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
-锁定(com.mysql.jdbc.util.ReadAheadInputStream)
在com.mysql.jdbc.MysqlIO.readFully上(MysqlIO.java:2549)
位于com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:620)
位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1102)
位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
-锁定(com.mysql.jdbc.jdbc4连接)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:792)
位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47)
位于sun.reflect.GeneratedConstructorAccessor39.newInstance(未知源)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
位于com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:440)
位于com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:138)
位于com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:108)
在com.zaxxer.hikari.HikariPool.addConnection上(HikariPool.java:382)
位于com.zaxxer.hikari.HikariPool.fillPool(HikariPool.java:315)
在com.zaxxer.hikari.HikariPool上(HikariPool.java:135)
在com.zaxxer.hikari.HikariDataSource。(HikariDataSource.java:51)

查看堆栈跟踪,我确实看到线程正在socketRead上等待。但是我能够使用mysql命令行在相同的两台机器之间进行连接。有什么想法吗?发生了什么事

MySQL配置了多少个连接,配置的池大小(最大值)是多少?可能会发布您的相关MySQL配置设置,并完成池配置。而且,这似乎是相关的。如果JDBC驱动程序的autoReconnect=true,并且连接URL有问题,它将继续尝试连接并显示此症状。@brettw Mysql配置为1000个连接。我的服务器应用程序正在尝试创建100个。应用程序和MySQL位于不同的物理主机上。同样,您设置autoReconnect=true会导致问题。如果驱动程序在MySQL驱动程序的连接代码中阻塞,则这不是池问题。@brettw,我们在autoReconnect=false中看到相同的问题。有一些示例代码,如果您想尝试的话。