如何检查HikariCP连接池在Java中是否有效?

Tej*_*jal 12 java mysql hibernate connection-pooling hikaricp

Log4j 在我的应用程序中使用的配置文件中编写了以下属性当我运行项目时.

我正在关注message.does意味着在我的项目中配置连接池?如果不是那么它将如何?

INFO:internal.ConnectionProviderInitiator - HHH000130:实例化显式连接提供程序:com.zaxxer.hikari.hibernate.HikariConnectionProvider

我也提到了以下链接

链接在这里

数据源设置

hibernate.datasource.driver-class-name=com.mysql.jdbc.Driver
hibernate.datasource.url=jdbc:mysql://localhost:3306/mydb
hibernate.datasource.username=root
hibernate.datasource.password=root
Run Code Online (Sandbox Code Playgroud)

HikariCP设置

hibernate.hikari.dataSource.url=jdbc:mysql://localhost:3306/mydb
hibernate.hikari.idleTimeout=10
hibernate.hikari.maximumPoolSize=30
hibernate.hikari.minimumIdle=15
hibernate.connection.provider_class=com.zaxxer.hikari.hibernate.HikariConnectionProvider
hibernate.hikari.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
Run Code Online (Sandbox Code Playgroud)

use*_*900 6

请参阅 HikariCP 关于MySQL 的说明:

众所周知,MySQL 数据源在网络超时支持方面存在问题。请改用 jdbcUrl 配置。

您需要删除以下行,Hikari 会找到驱动程序

hibernate.datasource.driver-class-name=com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

jdbcUrl 此属性指示 HikariCP 使用“基于 DriverManager”的配置。我们认为基于 DataSource 的配置(上图)更优越

还可以尝试在使用Hibernate4时按照建议添加以下内容:

hibernate.hikari.dataSource.url=jdbc:mysql://localhost/database
hibernate.hikari.dataSource.user=bart
hibernate.hikari.dataSource.password=51mp50n
Run Code Online (Sandbox Code Playgroud)


Lui*_*ñoz 5

首先,由于maximum <minimumIdle,配置不一致。这些值最多应设置为相同的值。

hibernate.hikari.maximumPoolSize=10
hibernate.hikari.minimumIdle=10
Run Code Online (Sandbox Code Playgroud)

如果池正在工作,您应该会看到到端口3306的10个ESTABLISHED连接。

netstat -ant | grep 3306
tcp        0      0 127.0.0.1:41722     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41730     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41728     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41726     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41716     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41732     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41720     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41736     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41718     127.0.0.1:3306      ESTABLISHED 
tcp        0      0 127.0.0.1:41724     127.0.0.1:3306      ESTABLISHED
Run Code Online (Sandbox Code Playgroud)


小智 2

  1. 您是否尝试过使用该应用程序在数据库中插入/更新某些内容?如果失败了,那么它就不起作用了。

  2. 另一种测试方法是将您在此处提供的数据源更改hibernate.hikari.dataSource.url为不存在的数据库。

  3. 最后,将其更改<Configuration status="WARN"><Configuration status="DEBUG">