SymmetricDS Sample - 客户端使用的错误端口

时间:2015-04-01 16:54:45

标签: symmetricds

我试图从SymmetricDS教程中获取示例。我正在使用下载zip的samples目录中的配置文件corp-000.properties和store-001.properties。我已将它们放在引擎目录中并进行编辑,以便corp-000使用MySQL数据库,而store-001正在我的本地计算机上使用H2数据库。

以下是来自corp-000.properties的注册和同步网址:

registration.url=
sync.url= http : // localhost : 31415 / sync / corp-000

以下是商店-001中的内容:

registration.url= http: // localhost : 31415 / sync / corp-000
sync.url= http : // localhost : 31415 / sync / corp-000

当我运行bin / sym时,它会找到两个数据库。然后,store-001报告:

[store-001] - DefaultOfflineClientListener - Failed to connect to the transport: http: // localhost : 8080 / sync / corp-000
[store-001] - PushService - Could not communicate with corp:000:000 at http: // localhost : 8080 / sync / corp-000 because: Connection refused

这是个谜,因为在两个属性文件中没有指定端口8080。

注意:上面的网址在属性文件中没有空格。我必须这样做才能让Stackoverflow允许我在我的问题中使用它们。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

发布答案的时间很晚但是在store-001的属性文件中出现了错误:

registration.url应指向您的根节点(corp-000),而不是localhost。

我建议用corp-000 IP地址或网络名称替换localhost:     registration.url=http://<Corp-000-IPAddress>:31415/sync/corp-000

答案 1 :(得分:0)

尝试更换:

sync.url= http : // localhost : 31415 / sync / corp-000

sync.url=http://localhost:31415/sync/corp-000

然后:

registration.url= http: // localhost : 31415 / sync / corp-000

registration.url=http://localhost:31415/sync/corp-000

sync.url= http : // localhost : 31415 / sync / corp-000

sync.url=http://localhost:31415/sync/corp-000

即。从URL中删除所有空格(空格)。

答案 2 :(得分:0)

我也一直试图让SymmetricDS tutorial起作用。

这对我来说是全新的,由于我对Java数据库和Java数据库驱动程序等缺乏经验,我遇到了一些需要很长时间才能解决的问题,除了SymmeticDS对我来说也是新手。< / p>

  1. 端口问题
  2. JDBC驱动程序问题
  3. JDBC H2数据库管理问题
  4. 表格大写问题
  5. H2数据库* .mv.db问题
  6. 对数据库问题的共享访问
  7. 端口问题

    描述

    有像

    这样的说明
    ../bin/sym --port 8080 --server
    

    但在其他地方默认端口是31415,我记得通过想到pi,3.1415926 ....

    解决方案

    我有一个在localhost上运行的Apache Web服务器,所以为了测试SymmeticDS我使用了端口8080指令来使用31415,不过相反,对于大多数生活在防火墙等的人来说可能更有意义。因为两个引擎(公司和商店) -001)在同一台机器上运行,防火墙等对本教程来说不是问题,不过我预计它们可能会让我后来麻烦。

    JDBC驱动程序问题

    描述和解决方案

    我需要下载并安装一些JDBC H2数据库驱动程序才能使其正常工作。

    JDBC H2数据库管理问题

    描述

    在某些地方,教程会要求您针对H2数据库corp-000或store-001运行一些SQL命令。我习惯了MySQL WorkBench和MS SQL Server Management Studio,并且需要类似的东西,允许我打开数据库,查看它们的内容并运行SQL命令。

    解决方案

    我使用了在普通网络浏览器中运行的东西(我相信称为控制台查看器)。我从H2数据库网站下载并安装了东西。

    表格大写问题

    某些命令崩溃,并且找不到表ITEM(大写)等错误消息。检查我的数据库显示有一个名为item(小写)的表。由于表和字段名称在标准SQL中默认为大写,除非引用它们,否则会出现此问题。所以在SQL中

      

    项目

    意味着ITEM而

      

    &#39;项目&#39;

    表示项目。所以(例如)教程中的这一行

    insert into item (item_id, price_id, name) values (110000055, 55, 'Soft Drink');
    
    如果表名是小写,则

    不正确,例如对于名为&#39; item&#39;。

    的表格

    解决方案

    我在教程附带的文件中将表名和列名转换为大写。这比我希望其他人想做的工作更多。我想将我的更改贡献给SymmetricDS,但在我阅读签署和发布版权协议时放弃了。我选择大写作为我的名字的标准,以便我自己或SymmetricDS对引用名称的任何草率不再是一个显示塞子。此外,任何坚持引用或坚持在某些地方没有引号的糟糕的SQL实现仍然可以工作。例如,如果一个执行不佳的驱动程序不喜欢引用,那么ITEM而不是“ITEM&#39;仍然可以工作,而项目或项目而不是&#39;项目&#39;不会。

    H2数据库* .mv.db问题

    描述

    H2数据库软件的变化似乎正在进行中,某些默认似乎使用* .mv.db文件。

    jdbc:h2:file:C:/Work/symmetric-server-3.7.34/tmp/h2/corp;MV_STORE=FALSE;AUTO_SERVER=TRUE
    

    解决方案

    添加

    ;MV_STORE=FALSE
    

    我浏览器中的连接字符串似乎解决了这个问题。

    对数据库问题的共享访问

    描述

    我无法对H2数据库运行SQL命令(创建要同步的新数据),而SymmetricDS已经打开了数据库,而SymmetricDS正试图同步它们。

    解决方案

    jdbc:h2:file:C:/Work/symmetric-server-3.7.34/tmp/h2/corp;MV_STORE=FALSE;AUTO_SERVER=TRUE
    

    添加

    ;AUTO_SERVER=TRUE
    

    在控制台/浏览器连接字符串中修复了那个。您可能会注意到我也拥有数据库的完整路径。我不确定是否需要它,或者只是在尝试解决上面列出的问题之一时添加它。