2011-10-19 18 views
0

に裏打ちされたロールを取得し、助けてください休止状態、トランザクションは、私は(JBossのサーバーとして最終6.0)</p> <p>org.springframework.transaction.jta.JtaTransactionManagerを使用しています、私は春に新しいですJTAトランザクションマネージャ

されていません/のTransactionManagerと

userTrans:特性を有するBeanはJavaなど

transactionManagerNameを設定するように

actionNameをjava:comp/UserTransactionとして指定します。

コードでは、

jtaTxManager
プロパティを設定しています。その後

javax.transaction.TransactionManager tx = jtaTxManager.getTransactionManager();

、その後、トランザクションが

tx.begin()
文を使用して開始されます。

私はすべてのデータベース・エラーの間に間に発生した場合、JTAトランザクション 内で複数のレコードを保存するために休止状態が、使用しています、私は

を使用しているのセッションが最後に

を休止取得する

sessionFactory.getCurrentSession()
を使用していました制約違反の例外のようないくつかのレコードがキャッチ私が)(tx.rollback呼び出すために使用
javax.transaction.RollbackException
あるtx.commit()の上に投げたが、私のトランザクションはロールバックを取得し、)(tx.rollbackに次の例外を取得されていません。私はそうではありませんhibに任意の型の自動コミットプロパティを設定するプロパティを消去します。

しかし、理想的に、彼らは保存されてはならない、データベースに保存されます内のレコードの私の最初のが、この例外をロールバック中に発生ので、私は、彼らが救われている理由それはだと思います。

 
java.lang.IllegalStateException: BaseTransaction.rollback - [com.arjuna.ats.internal.jta.transaction.arjunacore.notx] [com.arjuna.ats.internal.jta.transaction.arjunacore.notx] no transaction! 
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:158) 
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114) 
+0

取引を開始しましたか?私はtx.commitに続いて例外 – Puce

+0

はい、しかし、ロールバックしながら、();私がし、javax.transaction.RollbackExceptionのような例外を取得しています:[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [COM .arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]とまだ私の以前のレコードが保存されます – Ram

答えて

1

この問題は、データソースの設定によるものであった前述したのを忘れて、アプリケーションのcontext.xml

から削除

org.springframework.jdbc.datasource.DriverManagerDataSource

とこれよりむしろ、oracle-xa-ds.xmlに設定されたjbossのjndiデータソースを使用した

関連する問題

 関連する問題