1

我需要使用 JCA 部署数据核。我的应用程序建立在 ejb3 和 CDI 之上。出现此错误后,我无法继续。

21:29:38,789 SEVERE [DataNucleus.Datastore.Schema] (http--10.91.10.49-8080-1) Failed initialising database.: org.datanucleus.exceptions. NucleusDataStoreException: You cannot commit during a managed transaction! at org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.close(ConnectionFactoryImpl.java:522) [datanucleus-rdbms-3.0.0-m6.jar:]

我正在将 LocalTransaction 与我定义的 Jboss 管理的数据源一起使用

Standalone.xml 驱动程序类 oracle.jdbc.driver.OracleDriver

ra.xml

事务支持 LocalTransaction

jdopersistance.xml

datanucleus.jtaLocator custom_jndi

datanucleus.jtaJndiLocation java:jboss/TransactionManager

datanucleus.connection.resourceType JTA

Standalone.xml 中定义的资源适配器已正确绑定,我可以在 ejb 中访问它。当我尝试访问持久性管理器时,会发生上述异常。

问题:是否有人在 JCA 下为 datnucleus 在 Jboss 上工作为 7

即使在我定义 datanucleus.connection.resourceType = JTA 之后,关于为什么 datanucleus 仍试图提交的任何线索

其他信息

jdbc 驱动程序 ojdbc6.jar

数据核-datanucleus-jca-3.0.0-m6.rar

Jboss作为7决赛

JDK 1.6

Ubuntu 8.10

甲骨文 11g

回答

谢谢安迪,在我创建了两个单独的数据源 1) 使用 JTA 2) 没有 JTA 后它可以工作。datanucleus.ConnectionFactory2Name ==> 指向非 JTA。另外我必须添加 datanucleus.jtaJndiLocation = java:jboss/TransactionManager。似乎这是特定于 oracle 的,我还没有尝试使用其他数据库。www.datanucleus.org/servlet/forum/viewthread_thread,4663_offset 上的讨论有所帮助。

4

1 回答 1

1

谢谢安迪,在我创建了两个单独的数据源 1) 使用 JTA 2) 没有 JTA 后它可以工作。datanucleus.ConnectionFactory2Name ==> 指向非 JTA。另外我必须添加 datanucleus.jtaJndiLocation = java:jboss/TransactionManager。似乎这是特定于 oracle 的,我还没有尝试使用其他数据库。在 datanucleus.org/servlet/forum/viewthread_thread,4663_offset 的讨论有所帮助

于 2011-08-26T10:49:00.100 回答