2011-12-20 6 views
1

データソース(JPA永続性ユニット用)を使用する耳があります。 この耳の複数のバージョンを同じjbossに展開する必要があり、それぞれ異なるデータベースを指しています。Jboss 6:データソースと同じ耳の複数バージョンを持つ方法

どうすれば対応できますか?

データソースがグローバルスコープですべての耳で共有されるため、各耳に異なるパラメータ(jdbc url/user/password)を使用して耳の中にデータソースxmlファイルを配置するだけでは不十分であることがわかりました。

各耳に異なるデータソース名を使用する必要がありますか、各デプロイメントでpersistence.xmlファイルを変更する必要がありますか?他の選択肢はありませんか?私は、JBoss 6を使用してい

編集:いくつかのより詳細 私は、データソースは、JPA永続性ユニットのために使用されているが、私は、同じデータソースを直接内部に使用されていることを言及しなかった言ったように直接jdbcアクセスを行う必要があるいくつかのクラス。だから、データソースの名前を変更するのは良い選択肢ではありません。

+0

私が知らないことを。データソースはJBoss JCA内で全体的にスコープされています。 – CoolBeans

答えて

0

私はこれを行うオプションはないと思う。 JBoss ASは常にデータソースをグローバルにスコープします。理論的にはapplication.xml内の@DataSourceDefinitionまたはdata-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アクセスを必要とするいくつかのクラスでも同じデータソースを使用するので、良いオプションではありません。 –