@634

メモ - J2EEのトランザクション

Advertisement

JTA/JTS

トランザクション処理を実現するためのAPI
JTA:http://java.sun.com/j2ee/ja/jta/index.html
JTShttp://java.sun.com/j2ee/ja/jts/index.html
これを利用することで、複雑なトランザクション制御を実装することが可能となる。 ※ただし、仕様も複雑。

EJBのトランザクション

EJB仕様では、いくつかのトランザクションが規定されている。
これを利用することで、JTA/JTSを用いた複雑な実装を行ことなく、手軽にトランザクション管理を実現することが出来る。
  • Required
  • RequiresNew
  • Mandatory
  • NotSupported
  • Supports
  • Never

Required

Beanがトランザクションの下にあるクライアントから呼び出された場合、そのトランザクションの一部として処理を行う。
Beanを呼び出したクライアントがトランザクションの下にない場合、新しいトランザクションを開始して処理を行う。

RequiresNew

Beanがトランザクションの下にあるクライアントから呼び出された場合、そのトランザクションを停止後、新たなトランザクションを開始してから処理を行う。処理が終了したら、停止したトランザクションを再開する。
Beanを呼び出したクライアントがトランザクションの下にない場合、新しいトランザクションを開始して処理を行う。

Mandatory

Beanがトランザクションの下にあるクライアントから呼び出された場合、そのトランザクションの一部として処理を行う。
Beanを呼び出したクライアントがトランザクションの下にない場合、TransactionRequiredException をスローする

Supports

Beanがトランザクションの下にあるクライアントから呼び出された場合、そのトランザクションの一部として処理を行う。
Beanを呼び出したクライアントがトランザクションの下にない場合、何も行わない。

NotSupported

Beanがトランザクションの下にあるクライアントから呼び出された場合、そのトランザクションを停止後、トランザクション管理外で処理を行う。処理が終了したら、停止したトランザクションを再開する。
Beanを呼び出したクライアントがトランザクションの下にない場合、何も行わない。

Never

Beanがトランザクションの下にあるクライアントから呼び出された場合、RemoteExceptionをスローする。
Beanを呼び出したクライアントがトランザクションの下にない場合、何も行わない。

※EJBのメソッドはトランザクション管理上で実行されない。

Springのトランザクション

EJBと同じ。
  • PROPAGATION_REQUIRED
  • PROPAGATION_SUPPORTS
  • PROPAGATION_MANDATORY
  • PROPAGATION_REQUIRES_NEW
  • PROPAGATION_NOT_SUPPORTED
  • PROPAGATION_NEVER

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール