gpt4 book ai didi

java - 如何判断同步完成 SymmetricDS

转载 作者:行者123 更新时间:2023-11-28 22:19:20 24 4
gpt4 key购买 nike

我需要编写代码,使用 SymmetricDS 并在按下按钮时同步两个数据库。 IE。我需要按下按钮,它显示它正在同步,然后当没有更多变化时它会说“一切正常”并让我继续操作。

除了确定一切都已同步的方法外,我已经想出了我需要做的所有事情。

SymmetricDS 引擎部署在 Tomcat 8 中,我的应用程序也部署在那里,我使用 JMX MBeans 连接到 SymmetricDS 以启动/停止同步。

最佳答案

我发现这四个查询

String serv_outgoing = "select * from sym_outgoing_batch where node_id = '" + node_id + "' and channel_id != 'config' and status != 'OK';";
String serv_data = "select d.* from sym_data d where d.data_id not in (select e.data_id from sym_data_event e);";

String client_outgoing = "select * from sym_outgoing_batch where node_id = '000' and channel_id != 'config' and status != 'OK';";
String client_data = "select d.* from sym_data d where d.data_id not in (select e.data_id from sym_data_event e);";

应该返回空结果。前两个在服务器数据库上执行,后两个在客户端上执行。

这看起来不是一个好的解决方案,因为客户端必须能够访问服务器数据库,但是您可以,例如,在您的服务器上创建一个 servlet 来监听一些 HTTP 请求,例如“服务器是否认为同步完成”并在检查客户端数据库之前查询它

此外,这是一段旧代码,您不应该使用普通查询来连接 JDBC 并使用 Hibernate 或其他 ORM,因此它们会正确转义您的参数并且您不容易受到 SQL 注入(inject)(当然这里你可能在内部生成 node_id,但谁知道呢,也许你让用户以某种方式输入它,比如登录或其他)

关于java - 如何判断同步完成 SymmetricDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com