From a49eeea9c14b0d985b6c87569086b47e2415da44 Mon Sep 17 00:00:00 2001 From: Thomas Segismont Date: Fri, 26 Jul 2024 16:14:37 +0200 Subject: [PATCH 1/2] Oracle: Lightweight Connection Validation See #1450 Signed-off-by: Thomas Segismont --- .../vertx/oracleclient/impl/OracleJdbcConnection.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java index 783b0f9b9..dfbbba925 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java @@ -13,6 +13,8 @@ import io.vertx.core.*; import io.vertx.core.internal.ContextInternal; import io.vertx.core.internal.PromiseInternal; +import io.vertx.core.internal.logging.Logger; +import io.vertx.core.internal.logging.LoggerFactory; import io.vertx.core.net.SocketAddress; import io.vertx.core.spi.metrics.ClientMetrics; import io.vertx.core.tracing.TracingPolicy; @@ -33,6 +35,8 @@ public class OracleJdbcConnection implements Connection { + private static final Logger log = LoggerFactory.getLogger(OracleJdbcConnection.class); + private final ClientMetrics metrics; private final OracleConnection connection; private final OracleMetadata metadata; @@ -103,7 +107,12 @@ public boolean isSsl() { @Override public boolean isValid() { - return true; + try { + return connection.isValid(OracleConnection.ConnectionValidation.SOCKET, 0); + } catch (SQLException e) { + log.trace("Failed to validate connection", e); + return false; + } } @Override From 0cc2ddfc03208f567348bd19a05c09070af28cc9 Mon Sep 17 00:00:00 2001 From: Thomas Segismont Date: Wed, 21 Aug 2024 18:09:27 +0200 Subject: [PATCH 2/2] Use NONE Connection validation. This setting does not make the driver block and is implemented as a simple lifecycle check. This is exactly what we do with other clients (Pg, MySQL, ...etc). Signed-off-by: Thomas Segismont --- .../java/io/vertx/oracleclient/impl/OracleJdbcConnection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java index dfbbba925..49b6ad829 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java @@ -108,7 +108,7 @@ public boolean isSsl() { @Override public boolean isValid() { try { - return connection.isValid(OracleConnection.ConnectionValidation.SOCKET, 0); + return connection.isValid(OracleConnection.ConnectionValidation.NONE, 0); } catch (SQLException e) { log.trace("Failed to validate connection", e); return false;