【问题标题】:Jboss 6: how to have multiple version of same ear with datasourceJboss 6:如何使用数据源拥有多个版本的同一耳朵
【发布时间】:2011-12-20 16:46:33
【问题描述】:

我的耳朵使用数据源(用于 JPA 持久性单元)。 现在我需要在同一个 jboss 中部署这个 ear 的多个版本,每个版本都指向不同的数据库。

我该如何处理。

我已经看到,将数据源 xml 文件部署在耳朵内是不够的,每个耳朵都有不同的参数(jdbc url/user/password),因为数据源是全局范围的,并且将由所有耳朵共享。

我是否需要为每个耳朵使用不同的数据源名称并为每个部署更改persistence.xml 文件?没有其他选择吗?

我正在使用 JBoss 6。

编辑:更多细节 正如我所说,数据源用于 JPA 持久性单元,但我没有提到在需要直接 jdbc 访问的几个类中直接使用相同的数据源。所以更改数据源的名称不是一个好的选择。

【问题讨论】:

  • 我不知道。数据源在 JBoss JCA 中是全局范围的。

标签: deployment datasource ear jboss6.x


【解决方案1】:

我认为没有任何选择可以做到这一点。 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 文件,那么在每个 EAR 中也放置不同的 persistence.xml 也不会那么糟糕,不是吗?至少你有持久性单元为你提供的间接性。如果在 EAR 内的许多地方直接使用数据源名称,那就更糟了。

这可能不是一个选项,但以防万一,GlassFish确实允许嵌入式数据源在应用范围内。

如果您对 JBoss AS 的此功能感兴趣,您可能想在这里表达:http://community.jboss.org/message/642506

【讨论】:

  • 我编辑了问题以添加更多细节。正如我所说的那样,修改数据源名称不是一个好的选择,因为我也在几个需要直接 JDBC 访问的类中使用相同的数据源。
猜你喜欢
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-12
  • 2014-09-23
相关资源
最近更新 更多