2011-12-20 74 views
1

我有一個使用數據源(用於JPA持久性單元)的耳朵。 現在我需要在同一個jboss中部署這個耳朵的多個版本,每個版本都指向不同的數據庫。Jboss 6:如何使用數據源擁有多個版本的耳朵

我該如何處理這個問題。

我已經看到,在耳內部署數據源xml文件是不夠的,每個耳朵中都有不同的參數(jdbc url/user/password),因爲數據源是全局範圍的並且將被所有耳朵共享。

是否需要爲每個耳朵使用不同的數據源名稱並更改每個部署的persistence.xml文件?沒有其他選擇嗎?

我使用JBoss 6

編輯:更多的細節 正如我所說的數據源是用於JPA持久化單元,但我沒有提到同一數據源直接用於內部幾個需要直接訪問jdbc的類。所以改變數據源的名稱不是一個好的選擇。

+0

不,我知道的。數據源在JBoss JCA中全局範圍內。 – CoolBeans 2011-12-20 17:02:59

回答

0

我認爲沒有任何選擇來做到這一點。 JBoss AS始終在全局範圍內定義數據源。理論上,application.xml中的@DataSourceDefinitiondata-source元素可以是應用程序範圍的。

不幸的是,這個在JBoss AS 6中似乎不起作用,即使它能工作,Jaikiran Pai也表示這樣的數據源不允許用於持久單元。

http://community.jboss.org/thread/161032https://issues.jboss.org/browse/JBAS-8816

但如果你已經將每個EAR內不同*-ds.xml文件,那麼它不會是壞也把不同的persistence.xml每一個裏面,不是嗎?至少你有持久性單元爲你提供的間接性。如果數據源名稱會直接在EAR內部的許多地方使用,那將會更糟糕。

這可能不是一個選項,但以防萬一,以防萬一,GlassFish 確實允許嵌入數據源爲應用程序範圍。

如果你有興趣在此功能的JBoss AS,你可能想在這裏表達這樣的:http://community.jboss.org/message/642506

+0

我編輯了這個問題來添加更多的細節。正如我所說修改數據源名稱不是一個好的選擇,因爲我在幾個需要直接訪問JDBC的類中也使用相同的數據源。 – 2011-12-21 08:31:04

相關問題