2008-11-18 49 views
0

我在OSGi環境中使用db4o 6.4.54作爲模型存儲。每次我重新啓動OSGi框架時,數據庫似乎都是空的,儘管文件在那裏並且不是空的。db4o和OSGi - 重啓後的空數據庫

我具有以下配置:

芯束,這取決於由db4o的提供的標準db4o_osgi束。取決於核心插件的用戶界面包,從其獲取模型的位置獲取。

核心包通過openServer(String,0)方法創建內存中的服務器,然後爲每個請求/線程創建單獨的客戶端。

問題是,每次創建db4o服務器時,查詢都不會返回任何結果。

我試圖使用該服務,但它也沒有工作。

我測試的下一步是將db4o直接包含到我的包中,並且它工作正常(效果是db4o類與我存儲到數據庫中的模型對象使用相同的類加載器加載)。在db4o論壇[1]有一篇文章,但它沒有解釋爲什麼存在這個問題以及它應該如何解決(正確)。我會繼續我的調查,但是我想知道其他人是否有擺脫這個問題在我面前?

+0

我現在面臨類似的問題。你有沒有解決它? – nawroth 2009-09-21 23:00:41

回答

1

是否在關閉osgi包時提交了更改並關閉了客戶端連接?

例如: - 某事像

ObjectContainer client; 

public void start(BundleContext context) throws Exception { 
    client = Db4oClientServer.openClient(...); 
}  

public void stop(BundleContext context) throws Exception { 
    if (!client.ext().isClosed()) 
     client.close(); 
} 

或可考慮my standalone Db4oServer可能收到來自客戶端的消息「STOP」停止。