From c9cbecc2a97dfbe11c4e377721b94e97ecc94c8a Mon Sep 17 00:00:00 2001 From: hailin0 Date: Mon, 22 May 2023 15:56:01 +0800 Subject: [PATCH 1/2] [Hotfix][Connector][Jdbc] Fix reconnect throw close statement exception --- .../seatunnel/jdbc/internal/JdbcOutputFormat.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java index 873a542f5e9..c26e2d9f70f 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java @@ -239,7 +239,14 @@ public synchronized void close() { } public void updateExecutor(boolean reconnect) throws SQLException, ClassNotFoundException { - jdbcStatementExecutor.closeStatements(); + try { + jdbcStatementExecutor.closeStatements(); + } catch (SQLException e) { + if (!reconnect) { + throw e; + } + LOG.info("Close JDBC statement failed on reconnect.", e); + } jdbcStatementExecutor.prepareStatements( reconnect ? connectionProvider.reestablishConnection() From a85905ecad2750387a96f9dcdd2f813f27e32ca4 Mon Sep 17 00:00:00 2001 From: hailin0 Date: Tue, 23 May 2023 17:15:56 +0800 Subject: [PATCH 2/2] Update JdbcOutputFormat.java --- .../connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java index c26e2d9f70f..ee3c4a7a68b 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java @@ -245,7 +245,7 @@ public void updateExecutor(boolean reconnect) throws SQLException, ClassNotFound if (!reconnect) { throw e; } - LOG.info("Close JDBC statement failed on reconnect.", e); + LOG.error("Close JDBC statement failed on reconnect.", e); } jdbcStatementExecutor.prepareStatements( reconnect