This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new e7095cea0b6 branch-2.1: [improvement](jdbc catalog) Optimize JDBC driver property settings #42923 (#44405) e7095cea0b6 is described below commit e7095cea0b6b019c65ce4b60254c370b8b4c57f2 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> AuthorDate: Fri Nov 22 22:53:35 2024 +0800 branch-2.1: [improvement](jdbc catalog) Optimize JDBC driver property settings #42923 (#44405) Cherry-picked from #42923 Co-authored-by: zy-kkk <zhongyongk...@selectdb.com> --- .../src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java | 6 +++++- .../src/main/java/org/apache/doris/jdbc/MySQLJdbcExecutor.java | 5 +++++ .../java/org/apache/doris/datasource/jdbc/client/JdbcClient.java | 6 +++++- .../org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java | 8 ++++++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java index 3a7342d6280..56b7865dbb1 100644 --- a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java +++ b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java @@ -70,6 +70,7 @@ public abstract class BaseJdbcExecutor implements JdbcExecutor { protected String jdbcDriverVersion; public BaseJdbcExecutor(byte[] thriftParams) throws Exception { + setJdbcDriverSystemProperties(); TJdbcExecutorCtorParams request = new TJdbcExecutorCtorParams(); TDeserializer deserializer = new TDeserializer(PROTOCOL_FACTORY); try { @@ -93,7 +94,6 @@ public abstract class BaseJdbcExecutor implements JdbcExecutor { .setConnectionPoolMaxLifeTime(request.connection_pool_max_life_time) .setConnectionPoolKeepAlive(request.connection_pool_keep_alive); JdbcDataSource.getDataSource().setCleanupInterval(request.connection_pool_cache_clear_time); - System.setProperty("com.zaxxer.hikari.useWeakReferences", "true"); init(config, request.statement); this.jdbcDriverVersion = getJdbcDriverVersion(); } @@ -146,6 +146,10 @@ public abstract class BaseJdbcExecutor implements JdbcExecutor { throws SQLException { } + protected void setJdbcDriverSystemProperties() { + System.setProperty("com.zaxxer.hikari.useWeakReferences", "true"); + } + public void cleanDataSource() { if (hikariDataSource != null) { hikariDataSource.close(); diff --git a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/MySQLJdbcExecutor.java b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/MySQLJdbcExecutor.java index e94f2b22298..4e5af95211b 100644 --- a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/MySQLJdbcExecutor.java +++ b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/MySQLJdbcExecutor.java @@ -50,6 +50,11 @@ public class MySQLJdbcExecutor extends BaseJdbcExecutor { public MySQLJdbcExecutor(byte[] thriftParams) throws Exception { super(thriftParams); + } + + @Override + protected void setJdbcDriverSystemProperties() { + super.setJdbcDriverSystemProperties(); System.setProperty("com.mysql.cj.disableAbandonedConnectionCleanup", "true"); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java index 54f15f7404e..c8f45e4fc23 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcClient.java @@ -99,7 +99,7 @@ public abstract class JdbcClient { } protected JdbcClient(JdbcClientConfig jdbcClientConfig) { - System.setProperty("com.zaxxer.hikari.useWeakReferences", "true"); + setJdbcDriverSystemProperties(); this.catalogName = jdbcClientConfig.getCatalog(); this.jdbcUser = jdbcClientConfig.getUser(); this.isOnlySpecifiedDatabase = Boolean.parseBoolean(jdbcClientConfig.getOnlySpecifiedDatabase()); @@ -116,6 +116,10 @@ public abstract class JdbcClient { this.jdbcLowerCaseMetaMatching = new JdbcIdentifierMapping(isLowerCaseMetaNames, metaNamesMapping, this); } + protected void setJdbcDriverSystemProperties() { + System.setProperty("com.zaxxer.hikari.useWeakReferences", "true"); + } + // Initialize DataSource private void initializeDataSource(JdbcClientConfig config) { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java index a8263f1621a..b78589faa77 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java @@ -46,8 +46,6 @@ public class JdbcMySQLClient extends JdbcClient { protected JdbcMySQLClient(JdbcClientConfig jdbcClientConfig) { super(jdbcClientConfig); - // Disable abandoned connection cleanup - System.setProperty("com.mysql.cj.disableAbandonedConnectionCleanup", "true"); convertDateToNull = isConvertDatetimeToNull(jdbcClientConfig); Connection conn = null; Statement stmt = null; @@ -74,6 +72,12 @@ public class JdbcMySQLClient extends JdbcClient { this.dbType = dbType; } + @Override + protected void setJdbcDriverSystemProperties() { + super.setJdbcDriverSystemProperties(); + System.setProperty("com.mysql.cj.disableAbandonedConnectionCleanup", "true"); + } + @Override public List<String> getDatabaseNameList() { Connection conn = null; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org