如何检查HikariCP连接池在Java中是否正常工作?数据源设置光中电脑设置

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

我收到以下消息。这是否意味着在我的项目中配置了连接池?如果不是,那么它将如何?

信息:内部。ConnectionProviderInitiator - HHH000130: Instantiating explicit connection provider: 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

光中电脑设置

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

答案 1

首先,配置不一致,因为最大<最小Idle。这些值最多应设置为相同的值。

hibernate.hikari.maximumPoolSize=10
hibernate.hikari.minimumIdle=10

如果池正在运行,则应看到 10 个已建立的端口 3306 连接(或以下示例中的 mssql 1433)。

lsof -nP -i :1433 -sTCP:ESTABLISHED
COMMAND  PID       USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    1596 lmc  260u  IPv6 1624799      0t0  TCP 127.0.0.1:43022->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  265u  IPv6 1626072      0t0  TCP 127.0.0.1:43026->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  266u  IPv6 1630933      0t0  TCP 127.0.0.1:43030->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  267u  IPv6 1631705      0t0  TCP 127.0.0.1:43034->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  268u  IPv6 1632268      0t0  TCP 127.0.0.1:43038->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  269u  IPv6 1632273      0t0  TCP 127.0.0.1:43042->127.0.0.1:1433 (ESTABLISHED)
java    1596 lmc  270u  IPv6 1632278      0t0  TCP 127.0.0.1:43046->127.0.0.1:1433 (ESTABLISHED)

使用(套接字统计)ss

ss -46 -np state established dport = :1433 | grep 'java' | sort -r -k 3,3 | nl
     1  tcp    0       0          [::ffff:127.0.0.1]:43158     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=273))                                               
     2  tcp    0       0          [::ffff:127.0.0.1]:43154     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=272))                                               
     3  tcp    0       0          [::ffff:127.0.0.1]:43150     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=271))                                               
     4  tcp    0       0          [::ffff:127.0.0.1]:43142     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=270))                                               
     5  tcp    0       0          [::ffff:127.0.0.1]:43138     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=269))                                               
     6  tcp    0       0          [::ffff:127.0.0.1]:43134     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=268))                                               
     7  tcp    0       0          [::ffff:127.0.0.1]:43130     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=267))                                               
     8  tcp    0       0          [::ffff:127.0.0.1]:43126     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=266))                                               
     9  tcp    0       0          [::ffff:127.0.0.1]:43122     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=265))                                               
    10  tcp    0       0          [::ffff:127.0.0.1]:43118     [::ffff:127.0.0.1]:1433   users:(("java",pid=1596,fd=260))

使用(在某些发行版上已弃用,以支持netstatss)

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

答案 2

请参阅HikariCP关于MySQL的说明

众所周知,MySQL数据源在网络超时支持方面被破坏了。请改用 jdbcUrl 配置。

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

hibernate.datasource.driver-class-name=com.mysql.jdbc.Driver

jdbcUrl此属性指示 HikariCP 使用“基于驱动程序管理器”的配置。我们认为基于数据源的配置(上图)更优越

同时尝试按照使用 Hibernate4 时的建议添加以下内容:

hibernate.hikari.dataSource.url=jdbc:mysql://localhost/database
hibernate.hikari.dataSource.user=bart
hibernate.hikari.dataSource.password=51mp50n

推荐