2010-12-07 13 views
1

私は2つのPostgreSQLデータベース間で分散トランザクションを実行しようとしています。私はGlassfish v3.0.1を使用しています。Java EE 6分散トランザクション - Glassfish v3.0.1でJTS5031例外を取得する

私のGlassFishドメインには、クラス名がorg.postgresql.xa.PGXADataSourceのリソースタイプjavax.sql.XADataSourceを持つ2つの接続プールがあります。

私は両方のデータベースに当たっているステートレスEJBメソッドで統合テストを作成しようとしています。統合テストを実行するために、私はglassfishの組み込みバージョンを作成し、JNDIを介してEJBをルックアップします。

永続性ユニットが1つしかない統合テストを実行すると、正常に動作しています。

これは私がやろうとしている最初の分散トランザクションなので、すべてが正しく設定されているかどうかはわかりません。

私は本当にスタックが何を得ているのか分からないので、これを解決する方法に関する情報を見つける方法について本当にわかりません。私はmyDomain/logsのログを見て何も見つけることができませんでした。他のログはありますか?スタックトレースは以下の通りです。

javax.ejb.EJBException:コンテナ管理トランザクションを完了できません。 com.sun.ejb.containersでcom.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756) でcom.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5002) で。 com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invokeでcom.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1906) でBaseContainer.postInvoke(BaseContainer.java:1955) (EJBLocalObjectInvocationHandler.java:198) com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84) $ Proxy101.createAccount(不明なソース) at cheetah.services.impl。 sun.reflect.NativeMethodAccessorImpl.invoke0でEJB31_Generated_ AccountServiceの _Intf_ビーン _.createAccount(不明なソース)cheetah.services.tests.integration.AccountServiceTest.createAccount_ValidParameters_AccountCreated(AccountServiceTest.java:60)で (ネイティブメソッド) java.lang.reflect.Method.invokeでsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) (Method.java:597)でsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で at org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:44) またはg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners。ステートメント.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate RunAfters.java:31)org.junit.runnersでorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71でorg.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) で) 。 BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner $ 3.run(ParentRunner.ja va:193) at org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner。java:191) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:42) at org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:184) at org.junit.internal。 runners.statements.RunBefores.evaluate(RunBefores.java:28) (org.junit.internal.runners.statements.RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner。 java:236) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:24) at org.junit.runners.ParentRunner $ 3 .run(ParentRunner.java:193) at org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:193) va:191) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:42) at org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:184) at org.junit.internal。 runners.statements.RunBefores.evaluate(RunBefores.java:28) (org.junit.internal.runners.statements.RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner。 Javaの:ORGでorg.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518) でjunit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) で236) 。 apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(J UnitTestRunner.java:906) 原因:javax.transaction.SystemException:JTS5031:例外[org.omg.CORBA.INTERNAL:vmcid:0x0マイナーコード:0完了:多分]リソース[ロールバック]操作。 vmcid:0x0マイナーコード:0完了:いいえ com.sun.jts.jta.TransactionManagerImpl.commit(TransactionManagerImpl.java:330) at com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate.commitDistributedTransaction(JavaEETransactionManagerJTSDelegate.java: 158)com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:4991) でcom.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:843) で ... 43もっと

答えて

1

グラスフィッシュは準備されたトランザクションを望んでいたので、私は同じ問題(CORBAエラーJTS5031)を持っていました(これは2年前には望んでいなかったものです)、dbms(postgres)それらを使用してください。

あなたのpostgresログを調べてみてください

関連する問題