HikariCP соединение закрыто
Примерно через 24-48 часов я начинаю получать:
java.sql.SQLException: Connection is closed
at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.lambda$getClosedConnection$0(ProxyConnection.java:466)
at com.sun.proxy.$Proxy14.prepareStatement(Unknown Source)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:311)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
at com.wingify.pushcrew.utils.MysqlUtils.updatePushStatus(MysqlUtils.java:141)
at com.wingify.pushcrew.threads.PushStatusConsumer.run(PushStatusConsumer.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Вот как выглядит конфиг HikariCP на моем конце:
config.setJdbcUrl(DeploymentProfileProvider.getDatabaseProperties().getProperty("mysql.url")); config.setUsername(DeploymentProfileProvider.getDatabaseProperties().getProperty("mysql.username")); config.setPassword(DeploymentProfileProvider.getDatabaseProperties().getProperty("mysql.password")); config.setHealthCheckRegistry(ApplicationUtils.getHealthCheckRegistry());
config.setDriverClassName(DeploymentProfileProvider.getDatabaseProperties().getProperty("mysql.driver"));
config.setMetricRegistry(ApplicationUtils.getMetricRegistry());
config.addDataSourceProperty("autoReconnect", true);
config.setMaximumPoolSize(40);
config.setConnectionTimeout(30000);
config.setLeakDetectionThreshold(60 * 1000);
config.setIdleTimeout(90000);
config.setMaxLifetime(123000);
config.setValidationTimeout(5000);
config.setInitializationFailTimeout(0);
и как только это произойдет, мы продолжаем возвращать его обратно, и оно не остановится, пока мы не запустим приложение? Какой идеальный и неидеальный способ это исправить? Минимум не позволяет приложению быть затронутым.