diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java index 8f9bca79fcc37d..aabe9d140ee02c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java @@ -101,11 +101,9 @@ public void checkProperties() throws DdlException { } @Override - public void onRefresh(boolean invalidCache) { - super.onRefresh(invalidCache); - if (jdbcClient != null) { - jdbcClient.closeClient(); - } + public void notifyPropertiesUpdated(Map updatedProps) { + super.notifyPropertiesUpdated(updatedProps); + this.onClose(); } @Override @@ -113,6 +111,7 @@ public void onClose() { super.onClose(); if (jdbcClient != null) { jdbcClient.closeClient(); + jdbcClient = null; } } @@ -205,6 +204,9 @@ public boolean isTestConnection() { @Override protected void initLocalObjectsImpl() { + if (jdbcClient != null) { + return; + } JdbcClientConfig jdbcClientConfig = new JdbcClientConfig() .setCatalog(this.name) .setUser(getJdbcUser())