fixed issue #4018, fixed CanalInstanceWithManager thread-safe

This commit is contained in:
jianghang.loujh
2022-05-16 19:46:34 +08:00
parent b7eff723a3
commit 4a22d72ef4

View File

@@ -347,16 +347,18 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
@Override @Override
public TableMetaTSDB build(String destination, String springXml) { public TableMetaTSDB build(String destination, String springXml) {
try { synchronized (CanalInstanceWithManager.class) {
System.setProperty("canal.instance.tsdb.url", parameters.getTsdbJdbcUrl()); try {
System.setProperty("canal.instance.tsdb.dbUsername", parameters.getTsdbJdbcUserName()); System.setProperty("canal.instance.tsdb.url", parameters.getTsdbJdbcUrl());
System.setProperty("canal.instance.tsdb.dbPassword", parameters.getTsdbJdbcPassword()); 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"); return TableMetaTSDBBuilder.build(destination, "classpath:spring/tsdb/mysql-tsdb.xml");
} finally { } finally {
System.setProperty("canal.instance.tsdb.url", ""); System.setProperty("canal.instance.tsdb.url", "");
System.setProperty("canal.instance.tsdb.dbUsername", ""); System.setProperty("canal.instance.tsdb.dbUsername", "");
System.setProperty("canal.instance.tsdb.dbPassword", ""); System.setProperty("canal.instance.tsdb.dbPassword", "");
}
} }
} }
}); });