This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 5ed3b9ae257 [improvement](jdbc catalog) Optimize JDBC driver property
settings (#42923)
5ed3b9ae257 is described below
commit 5ed3b9ae25702fa776bf6f7a7f381c444e45a312
Author: zy-kkk <[email protected]>
AuthorDate: Thu Nov 21 15:55:35 2024 +0800
[improvement](jdbc catalog) Optimize JDBC driver property settings (#42923)
Abstract JDBC Driver property settings into methods for easier
management
---
.../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 e05a7baa008..4a54ac2d4ce 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
@@ -71,6 +71,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 {
@@ -94,7 +95,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();
}
@@ -147,6 +147,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 458142ff518..1ab32efddcc 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
@@ -100,7 +100,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());
@@ -117,6 +117,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: [email protected]
For additional commands, e-mail: [email protected]