デバッグの取引Java EE
-
26-09-2019 - |
質問
私@無国籍する方法I
- 削除件数データベースから
JPAを利用
remove()
's - 例外をスローする形として
@ApplicationException(rollback=true)
していないその他の取引の特定のアノテーションの方法を設定しま @TransactionAttribute(TransactionAttributeType.REQUIRED)
ときのデフォルトで!).取引コンテナ管理します。JPA会員企業のプロバイダはEclipseLink.
が、本取引はロールバック時に例外がスローされます。例えば.のエントリを削除してしまいましたら、データベースに以前のロールバックな戻りやすくなってしまいます。ちなみ.私entityManager.flush()の前に投げで、が原因であることがわかってき行為(いない)?
また電話 SessionContext.setRollbackOnly()
, 同じ結果です。
たいのですがこの問題のデバッグ?
を使用していGlassfish v3、Xsltproc、デバッグしているも嬉しいprintlnのかわからない答がなかった。
解決
私@無国籍する方法I(...)
で明らかに語ることはあり得ないのEntityManager?
(...)を設定しま@TransactionAttribute(TransactionAttributeType.必要
実際、これがデフォルトな必要になります。
が、本取引はロールバック時に例外がスローされます。例えば.のエントリを削除してしまいましたら、データベースに以前のロールバックな戻りやすくなってしまいます。
うーん、もっと意外でした。
ちなみ.私entityManager.flush()の前に投げで、が原因であることがわかってき行為(いない)?
いや、フラッシュ!= コミット
またコSessionContext.setRollbackOnly()と同じ結果です。
でも、まだ予期せぬものが少なくとも一貫した...).
を使用していGlassfish v3、Xsltproc、デバッグ
そのログインで、次の例の管理コンソール下の設定ロギング>ログレベル)ができるスポットは何か:
- javax.企業といえる。システム。ます。取引
- javax.企業といえる。リソースです。jta
- javax.企業といえる。システム。容器です。ejb
の代替として数分で出られる"貧しい人間のロギング"といいます)が実施 SessionSynchronization
取得に通知します。
う問題...
参照
他のヒント
のほか、パスカルの答えたアトラクションは時代とともにチェッ---ご EntityManager
保証 ない 参加コンテナ管理取引の場合にtrue:
- 作成したEntityManager介EntityManagerFactory
- 指定した
transaction-type="RESOURCE_LOCAL"
おpersistence.xml
次に確かめること:
<jta-data-source>
が入力されていないのpersistence.xml- のデータソース参照によ
<jta-data-source>
設定の参加JTAの取引が自動コミットがoff)
これまではやや特定のベンダーであるベンダーが自動的に記入し <jta-data-source>
ていない場合指定します。としても失敗しますの展開の場合 <jta-data-source>
が差しをデータソースのない設定に参加JTA取引(セットアップベンダーの特定).などのGlassfish取り扱うれます。