Skip to content

Commit 5242638

Browse files
author
listenabe
committed
fix: 测试数据源连接不使用缓存,解决WeiYe-Jing#664
1 parent f0aac36 commit 5242638

File tree

6 files changed

+14
-11
lines changed

6 files changed

+14
-11
lines changed

datax-admin/src/main/java/com/wugui/datax/admin/entity/JobDatasource.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ public class JobDatasource extends Model<JobDatasource> {
131131
*/
132132
@ApiModelProperty(value = "数据库名", hidden = true)
133133
private String databaseName;
134+
135+
@TableField(exist = false)
136+
private Boolean isCache = true;
134137
/**
135138
* 获取主键值
136139
*

datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobDatasourceServiceImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public class JobDatasourceServiceImpl extends ServiceImpl<JobDatasourceMapper, J
2929

3030
@Override
3131
public Boolean dataSourceTest(JobDatasource jobDatasource) throws IOException {
32+
// 测试连接的时候不使用缓存, 否则名称相同时, 获取的是缓存中的连接
33+
jobDatasource.setIsCache(Boolean.FALSE);
3234
if (JdbcConstants.HBASE.equals(jobDatasource.getDatasource())) {
3335
return new HBaseQueryTool(jobDatasource).dataSourceTest();
3436
}

datax-admin/src/main/java/com/wugui/datax/admin/tool/query/BaseQueryTool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import com.wugui.datax.admin.util.JdbcUtils;
1717
import com.zaxxer.hikari.HikariDataSource;
1818
import org.apache.commons.lang.StringUtils;
19+
import org.apache.commons.lang3.BooleanUtils;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
2122

@@ -57,7 +58,7 @@ public abstract class BaseQueryTool implements QueryToolInterface {
5758
* @param jobDatasource
5859
*/
5960
BaseQueryTool(JobDatasource jobDatasource) throws SQLException {
60-
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null) {
61+
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null || BooleanUtils.isNotTrue(jobDatasource.getIsCache())) {
6162
getDataSource(jobDatasource);
6263
} else {
6364
this.connection = (Connection) LocalCacheUtil.get(jobDatasource.getDatasourceName());

datax-admin/src/main/java/com/wugui/datax/admin/tool/query/HBaseQueryTool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.wugui.datatx.core.util.Constants;
55
import com.wugui.datax.admin.core.util.LocalCacheUtil;
66
import com.wugui.datax.admin.entity.JobDatasource;
7+
import org.apache.commons.lang3.BooleanUtils;
78
import org.apache.hadoop.conf.Configuration;
89
import org.apache.hadoop.hbase.*;
910
import org.apache.hadoop.hbase.client.*;
@@ -25,7 +26,7 @@ public class HBaseQueryTool {
2526
private Table table;
2627

2728
public HBaseQueryTool(JobDatasource jobDatasource) throws IOException {
28-
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null) {
29+
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null || BooleanUtils.isNotTrue(jobDatasource.getIsCache())) {
2930
getDataSource(jobDatasource);
3031
} else {
3132
connection = (Connection) LocalCacheUtil.get(jobDatasource.getDatasourceName());

datax-admin/src/main/java/com/wugui/datax/admin/tool/query/Hbase20XsqlQueryTool.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
package com.wugui.datax.admin.tool.query;
22

33
import com.google.common.collect.Lists;
4-
import com.mongodb.MongoClient;
5-
import com.mongodb.MongoClientURI;
6-
import com.mongodb.MongoCredential;
74
import com.wugui.datax.admin.core.util.LocalCacheUtil;
85
import com.wugui.datax.admin.entity.JobDatasource;
9-
import com.wugui.datax.admin.tool.database.ColumnInfo;
106
import com.wugui.datax.admin.util.JdbcUtils;
11-
import org.apache.commons.lang3.StringUtils;
7+
import org.apache.commons.lang3.BooleanUtils;
128

13-
import java.io.IOException;
149
import java.sql.*;
1510
import java.util.ArrayList;
16-
import java.util.Arrays;
1711
import java.util.List;
1812

1913
/**
@@ -32,7 +26,8 @@ public class Hbase20XsqlQueryTool extends BaseQueryTool implements QueryToolInte
3226
public Hbase20XsqlQueryTool(JobDatasource jobJdbcDatasource) throws SQLException {
3327
super(jobJdbcDatasource);
3428

35-
if (LocalCacheUtil.get(jobJdbcDatasource.getDatasourceName()) == null) {
29+
if (LocalCacheUtil.get(jobJdbcDatasource.getDatasourceName()) == null
30+
|| BooleanUtils.isNotTrue(jobJdbcDatasource.getIsCache())) {
3631
getDataSource(jobJdbcDatasource);
3732
} else {
3833
conn = (Connection) LocalCacheUtil.get(jobJdbcDatasource.getDatasourceName());

datax-admin/src/main/java/com/wugui/datax/admin/tool/query/MongoDBQueryTool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.mongodb.client.MongoIterable;
88
import com.wugui.datax.admin.core.util.LocalCacheUtil;
99
import com.wugui.datax.admin.entity.JobDatasource;
10+
import org.apache.commons.lang3.BooleanUtils;
1011
import org.apache.commons.lang3.StringUtils;
1112
import org.bson.Document;
1213

@@ -25,7 +26,7 @@ public class MongoDBQueryTool {
2526

2627

2728
public MongoDBQueryTool(JobDatasource jobDatasource) throws IOException {
28-
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null) {
29+
if (LocalCacheUtil.get(jobDatasource.getDatasourceName()) == null || BooleanUtils.isNotTrue(jobDatasource.getIsCache())) {
2930
getDataSource(jobDatasource);
3031
} else {
3132
connection = (MongoClient) LocalCacheUtil.get(jobDatasource.getDatasourceName());

0 commit comments

Comments
 (0)