I have written following properties in my configuration files I am using Log4j
in my application When I am running a project.
I am getting following message.does that mean connection pooling is configured in my project? if not then how it will be?
INFO: internal.ConnectionProviderInitiator - HHH000130: Instantiating explicit connection provider: com.zaxxer.hikari.hibernate.HikariConnectionProvider
I have referred following link also
link here
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
You can open MYSQL console and query by typing this query. as an example, I have added 10 connections for the pool. the username of the connection is mafei_connection_test . then you can see the all connection that the MySQL server created and currently opening.
Note that such a unit test would need a real database, with a real user and password to test. You could make your connection pool depend on a DataSource, and build your ConnectionPool using a mock DataSource returning mock Connections, in order to be able to test the class without depending on a real database.
Summary. "HikariCP is solid high-performance JDBC connection pool. A connection pool is a cache of database connections maintained so that the connections can be reused when future requests to the database are required. Connection pools may significantly reduce the overall resource usage." - You can find out more here.
In Spring Boot, @Autowired a javax. sql. DataSource , and you will know which database connection pool is using in the current running application.
First, configuration is no consistent since maximum < minimumIdle. Those should be set at most to the same value.
hibernate.hikari.maximumPoolSize=10
hibernate.hikari.minimumIdle=10
If the pools is working you should see 10 ESTABLISHED connections to port 3306 (or mssql 1433 in the example below).
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)
Using ss
(socket statistics)
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))
Using netstat
(deprecated on some distros in favor of ss
)
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With