MyOSS JTAの概要

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Java Transaction APIの概要

JTAの必要性・目的

俗に分散トランザクションと言われる技術分野がある。

国内では金融機関などで古くから使われているが、例えばあるビジネス上のトランザクションをコミットする際、あるデータベースへ書き込みを行うと同時にメッセージキューにもメッセージを送信したい場合がある。

この時システム障害などによって片方だけに記録されるとデータの不整合が発生することとなるので、こういった複数のデータの送信・書き込み先に対して一括してトランザクションを管理する必要性が出てくることとなる。

JTAはJavaにおける分散トランザクション技術の仕様である。

JTAを構成するコンポーネント

Transaction Manager
分散トランザクション全体を管理するコンポーネント。Transaction Managerは"javax.transaction.TransactionManager"インタフェースを実装する。
Transaction Context
任意のトランザクションを一意に識別するためのコンポーネント。"javax.transaction.Transaction"インタフェースを実装する。
Transaction Client
ひとつのトランザクションに対してひとつあるいは複数のTransaction Objectを通じて呼び出しを行うコンポーネント。通常のアプリケーションに相当し、特に実装しなければならないJTAのインタフェースは無い。
Transaction Object
処理内容がTransaction Contextによって影響を受けるコンポーネント。Transaction Object自身がTransaction Clientを兼ねる場合もある。ほとんどのEJBはこれに相当する。
Recoverable Resource
トランザクションがコミットされた時に状態を保存し、ロールバックされた時に状態を元に戻すコンポーネント。複数のRecoverable Resouceがトランザクションに加わっている場合、コミット時にTransaction ManagerからXAプロトコル(2相コミット)を用いて指示を受けて状態の保存を行えるか一度確認をしてからコミットする。"javax.transaction.xa.XAResouce"インタフェースを実装する。



  • 作成しました。 -- ikeda (2005-07-20 09:14:12)
名前:
コメント: