2009-08-26 29 views
3

我愉快地HSQLDB通過只是有我的數據庫URL像這樣的工作:快速開關替代了HSQLDB文件模式(我現在需要的併發訪問)

jdbc:hsqldb:file:target/testdb; 

...並擁有一切就像如果我在任何其他網絡數據庫上。然後突然有一個需求在我頭上直接打了我,我需要另一個JVM實例(在同一臺機器上)連接到數據庫以生成一些報告。

我已閱讀關於德比和伯克利DB,但似乎我需要設置一些環境變量,我的客戶問我編程這個系統沒有任何特殊配置(應該創建環境變量)。

我想過有一個獨立的線程以並行的方式在服務器模式下啓動HSQL,但我寧願使用另一個數據庫引擎,它與HSQLDB一樣簡單,但具有文件模式併發訪問支持。希望你們知道解決我的問題

回答

1

SQLite可能是一個不錯的選擇。見this SO question

但是,我認爲在服務器模式下運行HSQL可能是最簡單的選擇。我幾年前就這樣使用它,並發現它對於基本的併發訪問足夠強大,並且您只需要在現有代碼中更改您的url。

0

一個直截了當的替代我建議你考慮一系列可能的解決方案,JDBC - 特別是考慮解決方案,將允許程序共享數據訪問:

  1. 共享訪問相同的文件
  2. 個人插座/對DBMS
  3. 消息連接兩個節目之間傳遞

由於您灣t開箱即用的JDBC支持(即你不想實現比JDBC層低的任何東西),我認爲#3和#1已經不在運行。那會讓你變成#2。

是否有任何理由認爲在單獨的線程中啓動HSQL會使JDBC調用變得不那麼簡單? HSQL運行的位置不影響訪問它的接口。

1

與其他數據庫不同,在proc數據庫之間遷移和同步數據,最好在單獨的JVM中以服務器模式運行HSQL。 Here's how to