diff --git a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
index beb61236..c05b5200 100644
--- a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
+++ b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
@@ -23,7 +23,7 @@
-
+
diff --git a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
index 58cab638..87f407b3 100644
--- a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
+++ b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
@@ -23,7 +23,7 @@
-
+
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
index b0dd89ce..73a5ead8 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
@@ -72,7 +72,7 @@ public class DatabaseTableMeta implements TableMetaTSDB {
@Override
public Thread newThread(Runnable r) {
- Thread thread = new Thread(r, "[scheduler-table-meta-snapshot]");
+ Thread thread = new Thread(r, String.format("[scheduler-table-meta-snapshot-%s]", destination));
thread.setDaemon(true);
return thread;
}
@@ -105,6 +105,26 @@ public class DatabaseTableMeta implements TableMetaTSDB {
}
return true;
}
+
+ @Override
+ public void destory() {
+ if (memoryTableMeta != null) {
+ memoryTableMeta.destory();
+ }
+
+ if (connection != null) {
+ try {
+ connection.disconnect();
+ } catch (IOException e) {
+ logger.error("ERROR # disconnect meta connection for address:{}", connection.getConnector()
+ .getAddress(), e);
+ }
+ }
+
+ if (scheduler != null) {
+ scheduler.shutdown();
+ }
+ }
@Override
public TableMeta find(String schema, String table) {
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java
index 904b55a9..c53e1a08 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java
@@ -58,6 +58,11 @@ public class MemoryTableMeta implements TableMetaTSDB {
public boolean init(String destination) {
return true;
}
+
+ @Override
+ public void destory() {
+ tableMetas.clear();
+ }
public boolean apply(EntryPosition position, String schema, String ddl, String extra) {
tableMetas.clear();
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDB.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDB.java
index d712adbe..f968ae12 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDB.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDB.java
@@ -18,6 +18,11 @@ public interface TableMetaTSDB {
*/
public boolean init(String destination);
+ /**
+ * 销毁资源
+ */
+ public void destory();
+
/**
* 获取当前的表结构
*/
diff --git a/parse/src/test/resources/tsdb/h2-tsdb.xml b/parse/src/test/resources/tsdb/h2-tsdb.xml
index c0a3d385..dcb6bc47 100644
--- a/parse/src/test/resources/tsdb/h2-tsdb.xml
+++ b/parse/src/test/resources/tsdb/h2-tsdb.xml
@@ -7,7 +7,7 @@
default-autowire="byName">
-
+
diff --git a/parse/src/test/resources/tsdb/mysql-tsdb.xml b/parse/src/test/resources/tsdb/mysql-tsdb.xml
index 099c034d..44f97203 100644
--- a/parse/src/test/resources/tsdb/mysql-tsdb.xml
+++ b/parse/src/test/resources/tsdb/mysql-tsdb.xml
@@ -7,7 +7,7 @@
default-autowire="byName">
-
+