@@ -24,25 +24,31 @@ public class HikariJdbcRepository implements DbRepository {
2424 private final HikariConfig hikariConfig ;
2525
2626 public HikariJdbcRepository (Config config ) {
27+ // hikari connection configuration
2728 String url = "jdbc:postgresql://" +
2829 config .get ("host" ).asString ().orElse ("tfb-database" ) +
2930 ":" + config .get ("port" ).asString ().orElse ("5432" ) +
3031 "/" + config .get ("db" ).asString ().orElse ("hello_world" );
31-
3232 hikariConfig = new HikariConfig ();
3333 hikariConfig .setJdbcUrl (url );
3434 hikariConfig .setUsername (config .get ("username" ).asString ().orElse ("benchmarkdbuser" ));
3535 hikariConfig .setPassword (config .get ("password" ).asString ().orElse ("benchmarkdbpass" ));
36- hikariConfig .addDataSourceProperty ("cachePrepStmts" , "true" );
3736
37+ // hikari additional configuration
3838 int poolSize = config .get ("sql-pool-size" ).asInt ().orElse (64 );
39- hikariConfig .addDataSourceProperty ("maximumPoolSize" , poolSize );
40- LOGGER .info ("Db pool size is set to " + poolSize );
41-
42- // use VTs with Hikari
39+ hikariConfig .setMaximumPoolSize (poolSize );
40+ LOGGER .info ("Hikari pool size is set to " + poolSize );
4341 ThreadFactory vtThreadFactory = Thread .ofVirtual ().factory ();
4442 hikariConfig .setThreadFactory (vtThreadFactory );
4543 hikariConfig .setScheduledExecutor (Executors .newScheduledThreadPool (poolSize , vtThreadFactory ));
44+ LOGGER .info ("Set thread factory to VTs" );
45+
46+ // data source properties
47+ hikariConfig .addDataSourceProperty ("cachePrepStmts" ,"true" );
48+ hikariConfig .addDataSourceProperty ("prepStmtCacheSize" ,"250" );
49+ hikariConfig .addDataSourceProperty ("prepStmtCacheSqlLimit" ,"2048" );
50+ hikariConfig .addDataSourceProperty ("ssl" , "false" );
51+ hikariConfig .addDataSourceProperty ("tcpKeepAlive" , "true" );
4652 }
4753
4854 private Connection getConnection () throws SQLException {
0 commit comments