<Resource name="xxx" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="30"
maximumPoolSize="30"
maxLifetime="3600000"
connectionTimeout="5000"
dataSourceClassName="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
dataSource.cachePrepStmts="true"
dataSource.prepStmtCacheSize="250"
dataSource.prepStmtCacheSqlLimit="2048"
registerMbeans="true"
dataSource.logger="com.mysql.jdbc.log.StandardLogger"
dataSource.logSlowQueries="false"
dataSource.dumpQueriesOnException="false"
dataSource.user="xxxx"
dataSource.password="xxxx"
dataSource.url="jdbc:mysql:/xxxxx:3306/xxx?autoReconnect=true"
validationQuery="SELECT 1"
validationInterval="240000"
testWhileIdle="true" />
초창기 JNDI(tomcat-jdbc)의 경우 JMX(jconsole 등)에 대한 설정에서 자동으로 dbfool 이 보였으나, HikariCP를 적용하면,
registerMbeans=true
를 해야지만, JMX 에서 확인이 가능하다고 합니다. 스프링 부트 2.0 의 default DBCP가 hikariCP 가 되었다고 합니다.
항상 hikariCP의 설명을 보면, 엄청 빠르고 가볍고, 신뢰할 수 있다고 설명합니다. 심지어 “zero-overhead”라며 엄청나게 높은 성능을 강조합니다.
2년전에 도입되었는데, 스프링 부트 2.0 의 default가 되었다는 것은 확실히 빠른다 뭐 그런 의미겠지요.