2012-05-07 45 views
0

我在我的一個項目中使用ActiveJDBC,今天我遇到了一個令人討厭的問題。ActiveJDBC併發請求?

對我的應用程序的併發請求將失敗,因爲ActiveJDBC嘗試從具有相同名稱「default」的池中獲取多個連接。

似乎有開有不同的名字連接的可能性,所以不是寫作:

Base.open(JNDI_NAME)

一個會寫:

new DB("someRandomName").open(JNDI_NAME);

但是...當試圖從數據庫獲取一些數據,有一個問題:ActiveJDBC搜索連接「默認」(或從模型類的@DbName註釋) - 據我所知,這個概念是用來處理多個數據庫(不是多個連接)。

我真的不想取代ActiveJDBC,因爲編寫了數千行代碼 - 任何想法?存在

回答

0

想法:) 在您的代碼,您有:

new DB("someRandomName").open(JNDI_NAME); 

..但你傳遞給類DB 的構造函數的字符串不是一些隨機字符串,而不是JNDI名稱。它是數據庫的邏輯名稱。您恰當地猜測,這必須能夠訪問多個數據庫訪問權限。 這裏是文檔說明這一點: http://javalite.io/database_connection_management#multiple-database-example

如果你只在你的系統中的一個數據庫時,你甚至不需要一類數據庫,只需使用基礎: http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.html 它將確保數據庫連接將有一個名字「默認」 - 你的模型預計的東西

歡呼聲