From 66b409d392b2632d718725882b6928394a9b509e Mon Sep 17 00:00:00 2001 From: Stefano Zilli Date: Thu, 22 Jul 2021 16:34:06 +0200 Subject: [PATCH] Add more overrides for hikari properties --- .../java/org/eclipse/kapua/commons/jpa/DataSource.java | 3 +++ .../kapua/commons/setting/system/SystemSettingKey.java | 10 +++++++++- .../commons/setting/system/SystemSettingKeyTest.java | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/commons/src/main/java/org/eclipse/kapua/commons/jpa/DataSource.java b/commons/src/main/java/org/eclipse/kapua/commons/jpa/DataSource.java index 843df38ada7..569b3b30837 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/jpa/DataSource.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/jpa/DataSource.java @@ -37,7 +37,10 @@ public static HikariDataSource getDataSource() { hikariDataSource.setMinimumIdle(config.getInt(SystemSettingKey.DB_POOL_SIZE_MIN, 1)); hikariDataSource.setIdleTimeout(config.getInt(SystemSettingKey.DB_POOL_IDLE_TIMEOUT, 180000)); hikariDataSource.setKeepaliveTime(config.getInt(SystemSettingKey.DB_POOL_KEEPALIVE_TIME, 30000)); + hikariDataSource.setMaxLifetime(config.getInt(SystemSettingKey.DB_POOL_MAX_LIFETIME, 1800000)); hikariDataSource.setConnectionTestQuery(config.getString(SystemSettingKey.DB_POOL_TEST_QUERY, "SELECT 1")); + + hikariDataSource.setLeakDetectionThreshold(config.getInt(SystemSettingKey.DB_POOL_LEAKDETECTION_THRESHOLD, 0)); } return hikariDataSource; } diff --git a/commons/src/main/java/org/eclipse/kapua/commons/setting/system/SystemSettingKey.java b/commons/src/main/java/org/eclipse/kapua/commons/setting/system/SystemSettingKey.java index bc4efb50c72..2e1d97e2f4e 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/setting/system/SystemSettingKey.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/setting/system/SystemSettingKey.java @@ -176,9 +176,17 @@ public enum SystemSettingKey implements SettingKey { */ DB_POOL_KEEPALIVE_TIME("commons.db.pool.keepalive.timeout"), /** - * Database pool test query used for connection liveness tests and keepalive + * Database pool maximum lifetime of a connection + */ + DB_POOL_MAX_LIFETIME("commons.db.pool.max.lifetime"), + /** + * Test query used for connection liveness tests and keepalive */ DB_POOL_TEST_QUERY("commons.db.pool.test.query"), + /** + * Amount of time that a connection can be out of the pool before a message is logged + */ + DB_POOL_LEAKDETECTION_THRESHOLD("commons.db.pool.leakdetection.threshold"), /** * Broker schema (e.g. mqtt, mqtts, ..) diff --git a/commons/src/test/java/org/eclipse/kapua/commons/setting/system/SystemSettingKeyTest.java b/commons/src/test/java/org/eclipse/kapua/commons/setting/system/SystemSettingKeyTest.java index fd400c3a5f6..8fb0d6ca060 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/setting/system/SystemSettingKeyTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/setting/system/SystemSettingKeyTest.java @@ -58,7 +58,9 @@ public void keyTest() { systemSettings.put(SystemSettingKey.DB_POOL_SIZE_MAX, "commons.db.pool.size.max"); systemSettings.put(SystemSettingKey.DB_POOL_IDLE_TIMEOUT, "commons.db.pool.idle.timeout"); systemSettings.put(SystemSettingKey.DB_POOL_KEEPALIVE_TIME, "commons.db.pool.keepalive.timeout"); + systemSettings.put(SystemSettingKey.DB_POOL_MAX_LIFETIME, "commons.db.pool.max.lifetime"); systemSettings.put(SystemSettingKey.DB_POOL_TEST_QUERY, "commons.db.pool.test.query"); + systemSettings.put(SystemSettingKey.DB_POOL_LEAKDETECTION_THRESHOLD, "commons.db.pool.leakdetection.threshold"); systemSettings.put(SystemSettingKey.DB_CHARACTER_ESCAPE, "commons.db.character.escape"); systemSettings.put(SystemSettingKey.DB_CHARACTER_WILDCARD_ANY, "commons.db.character.wildcard.any"); systemSettings.put(SystemSettingKey.DB_CHARACTER_WILDCARD_SINGLE, "commons.db.character.wildcard.single");