fixed issue #4018, fixed CanalInstanceWithManager thread-safe
This commit is contained in:
+11
-9
@@ -347,16 +347,18 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
|
||||
|
||||
@Override
|
||||
public TableMetaTSDB build(String destination, String springXml) {
|
||||
try {
|
||||
System.setProperty("canal.instance.tsdb.url", parameters.getTsdbJdbcUrl());
|
||||
System.setProperty("canal.instance.tsdb.dbUsername", parameters.getTsdbJdbcUserName());
|
||||
System.setProperty("canal.instance.tsdb.dbPassword", parameters.getTsdbJdbcPassword());
|
||||
synchronized (CanalInstanceWithManager.class) {
|
||||
try {
|
||||
System.setProperty("canal.instance.tsdb.url", parameters.getTsdbJdbcUrl());
|
||||
System.setProperty("canal.instance.tsdb.dbUsername", parameters.getTsdbJdbcUserName());
|
||||
System.setProperty("canal.instance.tsdb.dbPassword", parameters.getTsdbJdbcPassword());
|
||||
|
||||
return TableMetaTSDBBuilder.build(destination, "classpath:spring/tsdb/mysql-tsdb.xml");
|
||||
} finally {
|
||||
System.setProperty("canal.instance.tsdb.url", "");
|
||||
System.setProperty("canal.instance.tsdb.dbUsername", "");
|
||||
System.setProperty("canal.instance.tsdb.dbPassword", "");
|
||||
return TableMetaTSDBBuilder.build(destination, "classpath:spring/tsdb/mysql-tsdb.xml");
|
||||
} finally {
|
||||
System.setProperty("canal.instance.tsdb.url", "");
|
||||
System.setProperty("canal.instance.tsdb.dbUsername", "");
|
||||
System.setProperty("canal.instance.tsdb.dbPassword", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user