This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/linkis.git
The following commit(s) were added to refs/heads/master by this push:
new 2b55fe634 [LINKIS-5147][EC-JDBC] Add timeout configurations of
datasource for jdbc engine (#5148)
2b55fe634 is described below
commit 2b55fe634d34e4def47c6474e977ab23f6740a46
Author: Zhen Wang <[email protected]>
AuthorDate: Tue Jul 16 14:30:29 2024 +0800
[LINKIS-5147][EC-JDBC] Add timeout configurations of datasource for jdbc
engine (#5148)
* [LINKIS-5147] Add timeout configurations of datasource for jdbc engine
* fix style
---
.../manager/engineplugin/jdbc/ConnectionManager.java | 18 ++++++++++++++++++
.../jdbc/constant/JDBCEngineConnConstant.java | 5 +++++
.../jdbc/executor/JDBCEngineConnExecutor.scala | 4 +++-
3 files changed, 26 insertions(+), 1 deletion(-)
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java
b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java
index 38299081d..f7598d113 100644
---
a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java
+++
b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java
@@ -19,6 +19,7 @@ package org.apache.linkis.manager.engineplugin.jdbc;
import org.apache.linkis.common.utils.SecurityUtils;
import org.apache.linkis.hadoop.common.utils.KerberosUtils;
+import org.apache.linkis.manager.engineplugin.jdbc.conf.JDBCConfiguration$;
import
org.apache.linkis.manager.engineplugin.jdbc.constant.JDBCEngineConnConstant;
import
org.apache.linkis.manager.engineplugin.jdbc.exception.JDBCParamsIllegalException;
import org.apache.linkis.manager.engineplugin.jdbc.utils.JdbcParamUtils;
@@ -187,6 +188,14 @@ public class ConnectionManager {
JDBCPropertiesParser.getInt(
properties,
JDBCEngineConnConstant.JDBC_POOL_REMOVE_ABANDONED_TIMEOUT, 300);
+ int connectionTimeout =
+ JDBCPropertiesParser.getInt(properties,
JDBCEngineConnConstant.JDBC_CONNECTION_TIMEOUT, 0);
+ int socketTimeout =
+ JDBCPropertiesParser.getInt(properties,
JDBCEngineConnConstant.JDBC_SOCKET_TIMEOUT, 0);
+ int queryTimeout =
+ JDBCPropertiesParser.getInt(
+ properties, JDBCConfiguration$.MODULE$.JDBC_QUERY_TIMEOUT().key(),
0);
+
DruidDataSource datasource = new DruidDataSource();
LOG.info("Database connection address information(数据库连接地址信息)=" + dbUrl);
datasource.setUrl(dbUrl);
@@ -207,6 +216,15 @@ public class ConnectionManager {
datasource.setPoolPreparedStatements(poolPreparedStatements);
datasource.setRemoveAbandoned(removeAbandoned);
datasource.setRemoveAbandonedTimeout(removeAbandonedTimeout);
+ if (connectionTimeout > 0) {
+ datasource.setConnectTimeout(connectionTimeout);
+ }
+ if (socketTimeout > 0) {
+ datasource.setSocketTimeout(socketTimeout);
+ }
+ if (queryTimeout > 0) {
+ datasource.setQueryTimeout(queryTimeout);
+ }
return datasource;
}
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/constant/JDBCEngineConnConstant.java
b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/constant/JDBCEngineConnConstant.java
index 9e19ea9f5..16f6a7e32 100644
---
a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/constant/JDBCEngineConnConstant.java
+++
b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/constant/JDBCEngineConnConstant.java
@@ -34,6 +34,11 @@ public class JDBCEngineConnConstant {
"wds.linkis.jdbc.auth.kerberos.proxy.enable";
public static final String JDBC_PROXY_USER_PROPERTY =
"wds.linkis.jdbc.proxy.user.property";
public static final String JDBC_PROXY_USER = "wds.linkis.jdbc.proxy.user";
+
+ public static final String JDBC_CONNECTION_TIMEOUT =
"wds.linkis.jdbc.connection.timeout";
+
+ public static final String JDBC_SOCKET_TIMEOUT =
"wds.linkis.jdbc.socket.timeout";
+
public static final String JDBC_SCRIPTS_EXEC_USER = "execUser";
public static final String JDBC_ENGINE_RUN_TIME_DS =
"wds.linkis.engine.runtime.datasource";
public static final String JDBC_ENGINE_RUN_TIME_DS_MAX_VERSION_ID =
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executor/JDBCEngineConnExecutor.scala
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executor/JDBCEngineConnExecutor.scala
index 8a2d64fa7..240fed100 100644
---
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executor/JDBCEngineConnExecutor.scala
+++
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executor/JDBCEngineConnExecutor.scala
@@ -146,7 +146,9 @@ class JDBCEngineConnExecutor(override val outputPrintLimit:
Int, val id: Int)
try {
statement = connection.createStatement()
- statement.setQueryTimeout(JDBCConfiguration.JDBC_QUERY_TIMEOUT.getValue)
+ if (statement.getQueryTimeout == 0) {
+
statement.setQueryTimeout(JDBCConfiguration.JDBC_QUERY_TIMEOUT.getValue)
+ }
statement.setFetchSize(outputPrintLimit)
statement.setMaxRows(outputPrintLimit)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]