mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed issue #4822 , fix connection close
This commit is contained in:
@@ -1,5 +1,17 @@
|
|||||||
package com.alibaba.otter.canal.client.adapter.phoenix.service;
|
package com.alibaba.otter.canal.client.adapter.phoenix.service;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.alibaba.otter.canal.client.adapter.phoenix.PhoenixAdapter;
|
import com.alibaba.otter.canal.client.adapter.phoenix.PhoenixAdapter;
|
||||||
import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig;
|
import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig;
|
||||||
import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig.DbMapping;
|
import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig.DbMapping;
|
||||||
@@ -10,16 +22,6 @@ import com.alibaba.otter.canal.client.adapter.support.DatasourceConfig;
|
|||||||
import com.alibaba.otter.canal.client.adapter.support.EtlResult;
|
import com.alibaba.otter.canal.client.adapter.support.EtlResult;
|
||||||
import com.alibaba.otter.canal.client.adapter.support.Util;
|
import com.alibaba.otter.canal.client.adapter.support.Util;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
|
||||||
import java.sql.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Phoenix ETL 操作业务类
|
* Phoenix ETL 操作业务类
|
||||||
@@ -41,16 +43,17 @@ public class PhoenixEtlService {
|
|||||||
if (srcDataSource == null) {
|
if (srcDataSource == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
return syncSchema(srcDataSource.getConnection(), targetDSConnection, config);
|
try (Connection conn = srcDataSource.getConnection()) {
|
||||||
|
return syncSchema(conn, targetDSConnection, config);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean syncSchema(DataSource srcDS,Connection targetDSConnection, MappingConfig config) {
|
private static boolean syncSchema(DataSource srcDS,Connection targetDSConnection, MappingConfig config) {
|
||||||
try {
|
try (Connection conn = srcDS.getConnection()) {
|
||||||
return syncSchema(srcDS.getConnection(),targetDSConnection, config);
|
return syncSchema(conn, targetDSConnection, config);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user