This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.2.0
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.2.0 by this push:
new ae0ff1d51 jdbc get datasource info with published version info (#2823)
ae0ff1d51 is described below
commit ae0ff1d518c70c68d5e25fd65b2ab47a3fc92b42
Author: Casion <[email protected]>
AuthorDate: Wed Aug 17 14:23:53 2022 +0800
jdbc get datasource info with published version info (#2823)
---
.../jdbc/exception/JDBCDatasourceException.scala | 27 ++++++++++++++++++++++
.../jdbc/executer/JDBCEngineConnExecutor.scala | 24 +++++++++++++++----
.../jdbc/executer/JDBCMultiDatasourceParser.scala | 16 ++++++-------
3 files changed, 54 insertions(+), 13 deletions(-)
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/exception/JDBCDatasourceException.scala
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/exception/JDBCDatasourceException.scala
new file mode 100644
index 000000000..f93a324a6
--- /dev/null
+++
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/exception/JDBCDatasourceException.scala
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.linkis.manager.engineplugin.jdbc.exception
+
+import org.apache.linkis.common.exception.ErrorException
+
+class JDBCGetDatasourceInfoException(errorDesc: String) extends
ErrorException(70022, errorDesc) {
+ def this(errorDesc: String, t: Throwable) = {
+ this(errorDesc)
+ super.initCause(t)
+ }
+}
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCEngineConnExecutor.scala
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCEngineConnExecutor.scala
index 031a9c602..1a0956b26 100644
---
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCEngineConnExecutor.scala
+++
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCEngineConnExecutor.scala
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,6 +19,8 @@ package org.apache.linkis.manager.engineplugin.jdbc.executer
import java.sql.{Connection, ResultSet, SQLException, Statement}
import java.util
+import java.util.Collections
+
import org.apache.linkis.common.utils.{OverloadUtils, Utils}
import
org.apache.linkis.engineconn.computation.executor.execute.{ConcurrentComputationExecutor,
EngineExecutionContext}
import org.apache.linkis.engineconn.core.EngineConnObject
@@ -42,9 +44,9 @@ import org.apache.linkis.protocol.CacheableProtocol
import org.springframework.util.CollectionUtils
import org.apache.linkis.governance.common.paser.SQLCodeParser
import
org.apache.linkis.manager.engineplugin.jdbc.constant.JDBCEngineConnConstant
+import
org.apache.linkis.manager.engineplugin.jdbc.exception.JDBCGetDatasourceInfoException
import scala.collection.JavaConversions._
-
import scala.collection.mutable.ArrayBuffer
class JDBCEngineConnExecutor(override val outputPrintLimit: Int, val id: Int)
extends ConcurrentComputationExecutor(outputPrintLimit) {
@@ -66,7 +68,18 @@ class JDBCEngineConnExecutor(override val outputPrintLimit:
Int, val id: Int) ex
override def executeLine(engineExecutorContext: EngineExecutionContext,
code: String): ExecuteResponse = {
val realCode = code.trim()
val taskId = engineExecutorContext.getJobId.get
- val properties: util.Map[String, String] =
getJDBCRuntimeParams(engineExecutorContext)
+
+ var properties: util.Map[String, String] = Collections.emptyMap()
+
+
+ Utils.tryCatch({
+ properties = getJDBCRuntimeParams(engineExecutorContext)
+ }) {
+ e: Throwable =>
+ logger.error(s"try to build JDBC runtime params error! $e")
+ return ErrorExecuteResponse(e.getMessage, e)
+ }
+
logger.info(s"The jdbc properties is: $properties")
val dataSourceName =
properties.get(JDBCEngineConnConstant.JDBC_ENGINE_RUN_TIME_DS)
val dataSourceMaxVersionId =
properties.get(JDBCEngineConnConstant.JDBC_ENGINE_RUN_TIME_DS_MAX_VERSION_ID)
@@ -153,7 +166,8 @@ class JDBCEngineConnExecutor(override val outputPrintLimit:
Int, val id: Int) ex
Utils.tryCatch {
dataSourceInfo =
JDBCMultiDatasourceParser.queryDatasourceInfoByName(dataSourceName,
execSqlUser, dataSourceQuerySystemParam)
} {
- e: Throwable => logger.error(s"Failed to get datasource info about
[$dataSourceName] from datasource server.", e)
+ e: Throwable =>
+ throw new JDBCGetDatasourceInfoException(s"Failed to get datasource
info about [$dataSourceName] from datasource server.", e)
}
}
if (StringUtils.isBlank(dataSourceName)) {
diff --git
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCMultiDatasourceParser.scala
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCMultiDatasourceParser.scala
index 560bccb92..06912f58f 100644
---
a/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCMultiDatasourceParser.scala
+++
b/linkis-engineconn-plugins/jdbc/src/main/scala/org/apache/linkis/manager/engineplugin/jdbc/executer/JDBCMultiDatasourceParser.scala
@@ -18,14 +18,16 @@
package org.apache.linkis.manager.engineplugin.jdbc.executer
import java.util
+
import org.apache.commons.lang3.StringUtils
import org.apache.linkis.common.utils.{JsonUtils, Logging, Utils}
import org.apache.linkis.datasource.client.impl.LinkisDataSourceRemoteClient
-import
org.apache.linkis.datasource.client.request.GetInfoByDataSourceNameAction
+import
org.apache.linkis.datasource.client.request.GetInfoPublishedByDataSourceNameAction
import org.apache.linkis.datasourcemanager.common.domain.DataSource
import org.apache.linkis.manager.engineplugin.jdbc.JdbcAuthType
import
org.apache.linkis.manager.engineplugin.jdbc.constant.JDBCEngineConnConstant
import
org.apache.linkis.manager.engineplugin.jdbc.exception.JDBCParamsIllegalException
+
import scala.collection.JavaConversions._
object JDBCMultiDatasourceParser extends Logging {
@@ -34,15 +36,13 @@ object JDBCMultiDatasourceParser extends Logging {
logger.info(s"Starting query [$system, $username, $datasourceName]
datasource info ......")
val dataSourceClient = new LinkisDataSourceRemoteClient()
var dataSource: DataSource = null
- Utils.tryCatch {
- dataSource =
dataSourceClient.getInfoByDataSourceName(GetInfoByDataSourceNameAction.builder()
+
+ dataSource =
dataSourceClient.getInfoPublishedByDataSourceName(GetInfoPublishedByDataSourceNameAction.builder()
.setSystem(system)
.setDataSourceName(datasourceName)
.setUser(username)
.build()).getDataSource
- } {
- case e: Exception => logger.warn(s"Get data source info error, $e")
- }
+
queryDatasourceInfo(datasourceName, dataSource)
}
@@ -58,8 +58,8 @@ object JDBCMultiDatasourceParser extends Logging {
}
var maxVersionId = "0"
- if (dataSource.getVersionId != null) {
- maxVersionId = dataSource.getVersionId.toString
+ if (dataSource.getPublishedVersionId != null) {
+ maxVersionId = dataSource.getPublishedVersionId.toString
}
dsConnInfo.put(JDBCEngineConnConstant.JDBC_ENGINE_RUN_TIME_DS_MAX_VERSION_ID,
maxVersionId)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]