2011-07-26 101 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幫助