「Java Transaction API」の版間の差分
m ロボットによる 追加: es:Java Transaction API |
m ロボットによる: 細部の編集 |
||
| 5行目: | 5行目: | ||
== X/Open XA アーキテクチャ == |
== X/Open XA アーキテクチャ == |
||
[[ |
[[ファイル:JTA1.PNG|thumb|right|350px|X/Open XA アーキテクチャの概念図]] |
||
X/Open XA アーキテクチャでは、トランザクションマネージャ(あるいは[[トランザクション処理|TPモニター]])がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば[[リレーショナルデータベース]]では [[JDBC]] API が使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始/[[コミット]]/[[ロールバック]]を指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。 |
X/Open XA アーキテクチャでは、トランザクションマネージャ(あるいは[[トランザクション処理|TPモニター]])がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば[[リレーショナルデータベース]]では [[JDBC]] API が使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始/[[コミット]]/[[ロールバック]]を指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。 |
||
== JTA の実装 == |
== JTA の実装 == |
||
[[ |
[[ファイル:JTA2.PNG|thumb|right|350px|JTAの概念図]] |
||
JTA API は2つの[[Java]]パッケージにあるクラス群で構成される: |
JTA API は2つの[[Java]]パッケージにあるクラス群で構成される: |
||
2009年9月16日 (水) 02:21時点における版
Java Transaction API(JTA)とは、Java EEのAPIの1つであり、XAリソース間の分散トランザクション処理を扱う。JTA は Java Community Processで JSR 907 として開発された仕様である。JTA は以下を提供する:
- トランザクション境界の設定
- X/Open XA API を使ったトランザクション処理
X/Open XA アーキテクチャ
X/Open XA アーキテクチャでは、トランザクションマネージャ(あるいはTPモニター)がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えばリレーショナルデータベースでは JDBC API が使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始/コミット/ロールバックを指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。
JTA の実装
JTA API は2つのJavaパッケージにあるクラス群で構成される:
JTA は X/Open XA アーキテクチャに基づいているが、トランザクション境界を設定するために2つのAPIを定義している。JTA では EJBサーバのようなアプリケーションサーバとその上のアプリケーションコンポーネントを区別する。アプリケーションサーバがトランザクションの開始/コミット/ロールバックを指示するためのインターフェイスとして javax.transaction.TransactionManager がある。また、サーブレットや EJB がトランザクションを管理するためのインターフェイスとして javax.transaction.UserTransaction がある。右の図は X/Open XA インターフェイスとして使われる JTA のクラスを示している。
JTA アーキテクチャでは、各リソースマネージャ上に javax.transaction.xa.XAResource インターフェイスを実装してTPモニターから制御できるようにする必要がある。前述したように各リソースマネージャには以下のような固有のAPIがある。
Java Transaction Service
Java Transaction Service(JTS)とは、JTAを使ったトランザクションマネージャの実装である。CORBAアーキテクチャに基づいており、複数のJTS間のトランザクションの伝播にはIIOPを使う。Java EEアプリケーションサーバはJTSの実装が必須とされている。