2015-04-01 92 views
0

我正在嘗試從SymmetricDS教程中獲取示例以進行工作。我正在使用下載zip示例目錄中的配置文件corp-000.properties和store-001.properties。我已經將它們放在引擎目錄中,並對它們進行了編輯,以使corp-000使用MySQL數據庫,store-001使用H2數據庫,都在我的本地機器上。SymmetricDS示例 - 客戶端正在使用錯誤的端口

下面是註冊和同步的網址從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 

當我運行斌/符號,它找到兩個數據庫。但後來,商店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。

注意:上面的URL在屬性文件中沒有空格。我必須這樣做才能讓Stackoverflow讓我在他們的問題中得到它們。

非常感謝您的幫助。

回答

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的所有空格(空白)。

+0

鮑里斯,我的屬性文件中的URL中沒有空格。他們只是在我把它放入Stackoverflow問題。當我按照「原樣」粘貼它們時,Stackoverflow將其標記爲錯誤,並且不讓我保存該問題。它說我沒有權利在我發佈的問題中加入鏈接。所以,我不得不通過添加空格來欺騙它。所以,請忽略空格。我怎樣才能讓這個例子工作?你似乎在說,港口和路徑都是正確的(當然,沒有空間)。 – user1519054 2015-04-02 00:01:47

+0

也許端口31415不能使用。例如,您可以嘗試使用8080嗎? – 2015-04-02 08:27:17

+0

鮑里斯 - 在我將所有端口切換到8080後,它現在部分工作,並使用--port 8080和sudo啓動jar。我還沒有看到正確的同步,但至少沒有顯示錯誤。謝謝! – user1519054 2015-04-02 13:15:32

1

比較晚發佈一個答案,但有一個在商店001的屬性文件的錯誤:

registration.url應該指向你的根節點(這是CORP-000),不爲localhost。

我建議用CORP-000 IP地址或網絡名稱來代替本地主機: registration.url=http://<Corp-000-IPAddress>:31415/sync/corp-000

0

我也一直試圖讓SymmetricDS tutorial工作。

這對我來說都是新鮮事物,由於我對Java數據庫和Java數據庫驅動程序缺乏經驗,除了SymmeticDS對我來說也是新手之外,我遇到了一些需要很長時間才能解決的問題。

  1. 端口問題
  2. JDBC驅動程序的問題
  3. JDBC H2數據庫管理問題
  4. 表資本化問題
  5. H2數據庫* .mv.db問題
  6. 共享訪問數據庫的問題

端口問題

說明

有喜歡

../bin/sym --port 8080 --server 

指示,但在其他地方的默認端口是31415,我記得PI的思維,3.1415926 ....

解決方案

我有一個運行在本地主機上的Apache Web服務器,因此用於測試SymmeticDS我調整了端口8080指令以使用31415,儘管其他方式可能對大多數生活無線網絡的人更有意義因爲兩個引擎(corp和store-001)都運行在同一臺機器上,所以防火牆等對本教程來說不是問題,儘管我希望他們以後可能會遇到麻煩。

JDBC驅動程序問題

說明和解決方案

我需要下載並安裝一些JDBC H2數據庫驅動程序,把事情的工作。

JDBC H2數據庫管理問題

說明

在地方教程要求您運行對H2數據庫CORP-000或存儲001一些SQL命令。我習慣於MySQL WorkBench和MS SQL Server Management Studio,並且需要類似的東西來允許我打開數據庫,查看其內容並運行SQL命令。

解決方案

我用過的東西(稱爲控制檯查看器,我相信),在正常的網頁瀏覽器上運行。我從H2數據庫網站下載並安裝了一些東西。

表大寫問題

某些命令用如表ITEM錯誤消息崩潰(大寫)未找到。檢查我的數據庫顯示有一個名爲item(小寫)的表。由於表和字段名稱在標準SQL中默認爲大寫,除非引用它們,否則會出現此問題。因此,在SQL

項目

意味着項目而

'項目'

意味着項目。因此(例如)教程中的這一行

insert into item (item_id, price_id, name) values (110000055, 55, 'Soft Drink'); 

如果表名是小寫,用於一個名爲'item'的表。

解決方案

我經歷了和轉換表名和列名在本教程附帶的文件爲大寫。這是比我期望別人想要做的更多的工作。我想爲SymmetricDS貢獻我的改變,但當我閱讀有關簽署和發佈版權協議的內容時,我放棄了這些改動。我選擇大寫字母作爲名稱的標準,這樣我自己或SymmetricDS在引用名稱時的任何鬆動都不再是一個表演阻止者。而且,任何堅持引用或堅持在某些地方沒有引號的糟糕的SQL實現仍然可以工作。例如,如果執行不力的司機不喜歡引號,那麼ITEM而不是'ITEM'仍然可以工作,而item或ITEM而不是'item'不會。

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,這是試圖打開同步它們。

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

的加入

;AUTO_SERVER=TRUE 
在控制檯/瀏覽器連接字符串

固定的。您可能會注意到我也有完整的數據庫路徑。我不確定我是否需要該功能,或者在嘗試解決上述問題之一時添加該功能。