2011-07-26 164 views
1

我需要使用JCA部署数据核。我的应用程序建立在ejb3和CDI上。 我无法继续此错误。在jboss AS上部署Datanucleus AS 7

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 /事务管理

datanucleus.connection.resourceType JTA

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

问题:是否有人下得了JCA工作datnucleus在JBoss AS 7个

上为什么DataNucleus将尝试定义我即使犯任何线索管理与被管理的数据源交易datanucleus.connection.resourceType = JTA

其他信息

JDBC驱动程序ojdbc6.jar

DataNucleus将-datanucleus-JCA-3.0.0-m6.rar

JBoss作为7最终

JDK 1.6

Ubuntu的8.10

的Oracle 11g

回答

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

+0

为什么不问这个问题,在JBoss6中有很多人正在部署它没有问题,那么JBoss7有什么不同呢? (具有相同版本的DataNucleus) – DataNucleus

+0

我正在开发一些产品,它与使用datanucleus的审计功能很少的hibernate-envers类似。我喜欢注释。使用由于jboss7模块化且快速。更多jboos6不是EAP的一部分。首先,我将在jboss as7上完成我的产品的实现,并找出一种方法将JDO添加为jboss as7的一等公民。 –

+0

@DataNucleus Classloading在jboos as7中进行了更改。它由模块和jboss-deployent-structure.xml控制,现在服务器配置集中(standalone.xml/domain.xml),没有* -ds文件。日志记录已经改变,我还没有弄清楚如何打印datanucleus日志。现在它使用JCA1.6(IronJacamar)。切换到JCA1.6是否会成为上述行为的原因? –

回答

1

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