在容器外定义jta数据源
我们的应用程序目前使用的是JBoss standalone.xml中定义的数据源,基本上我们需要在应用程序中定义它,而不是在容器中定义一段时间。 我们目前的设置是;
应用程序的context.xml;
...
persistance.xml:
org.hibernate.ejb.HibernatePersistence java:/jdbc/RTSdb ... true
datasource.xml:
基本上我想要的只是线
java:/jdbc/RTSdb
从datasource.xml读取而不是去容器(JBoss)。 看起来它很简单,但在阅读了一些Spring和Oracle文档后,我找不到答案。
是的,您可以使用符合JTA标准的事务管理器,如Atomikos或Bitronix。 他们各自的站点都有关于如何使用Spring配置它们的文档。 通常,您必须遵循以下步骤(如果使用Atomikos):
- 保留现有的XA数据源(在您的情况下为
rtsDatasource
)或创建一个(如果尚未使用)(例如,如果有人拥有非XA数据源,则必须首先将该数据源转换为XA数据源)。 - 将XA数据源包装在
AtomikosDataSourceBean
。 - 将
EntityManagerFactory
指向新的AtomikosDataSourceBean
实例。 - 声明XA事务管理器和XA用户事务。
- 将XA事务管理器包装在Spring
JtaTransactionManager
。 - 使用Spring
JtaTransactionManager
。
使用H2数据库,Hibernate 4,Spring 4和Atomikos 4的简短配置片段如下所示。
... com.atomikos.icatch.jta.hibernate4.AtomikosPlatform ...
有关详细信息,您可以看到此应用 。