fix: 修复Doris 数据源间隔一天左右就提示连接无效 #14561

This commit is contained in:
taojinlong
2025-01-10 18:49:02 +08:00
committed by taojinlong
parent 2e541ae47b
commit d03cf9a912
2 changed files with 9 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package io.dataease.datasource.provider;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jcraft.jsch.Session;
import io.dataease.dataset.utils.FieldUtils;
import io.dataease.datasource.dao.auto.entity.CoreDatasource;
import io.dataease.datasource.dao.auto.entity.CoreDriver;
@@ -1380,6 +1381,13 @@ public class CalciteProvider extends Provider {
if (rootSchema.getSubSchema(datasourceSchemaDTO.getSchemaAlias()) == null) {
buildSchema(datasourceRequest, calciteConnection);
}
DatasourceConfiguration configuration = JsonUtil.parseObject(datasourceDTO.getConfiguration(), DatasourceConfiguration.class);
if(configuration.isUseSSH()){
Session session =Provider.getSessions().get(datasourceDTO.getId());
session.disconnect();
Provider.getSessions().remove(datasourceDTO.getId());
startSshSession(configuration, null, datasourceDTO.getId());
}
} catch (Exception e) {
DEException.throwException(e.getMessage());
}

View File

@@ -283,7 +283,7 @@ public abstract class Provider {
Integer lport = Provider.getLPorts().get(datasourceId);
if (lport != null) {
configuration.setLPort(lport);
if (Provider.getSessions().get(datasourceId) == null || !Provider.getSessions().get(datasourceId).isConnected()) {
if (Provider.getSessions().get(datasourceId) == null || !Provider.getSessions().get(datasourceId).isConnected()) {
Session session = initSession(configuration);
Provider.getSessions().put(datasourceId, session);
}