Java Transaction API

Java Transaction API (JTA) とはJakarta EE（旧・Java EE）のAPIの1つであり、XAリソース間の分散トランザクション処理を扱う。JTAはJava Community ProcessでJSR 907として開発された仕様である。JTAは以下を提供する:
X/Open XAアーキテクチャ.
アーキテクチャでは、トランザクションマネージャ（あるいはTPモニター）がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば関係データベースではJDBC APIが使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始、コミット、ロールバックを指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。
JTAの実装.
JTA APIは2つのJavaパッケージにあるクラス群で構成される:
JTAはX/Open XAアーキテクチャに基づいているが、トランザクション境界を設定するために2つのAPIを定義している。JTAでは EJBサーバのようなアプリケーションサーバとその上のアプリケーションコンポーネントを区別する。アプリケーションサーバがトランザクションの開始/コミット/ロールバックを指示するためのインタフェースとしてがある。また、サーブレットやEJBがトランザクションを管理するためのインタフェースとして がある。右の図は インタフェースとして使われる JTA のクラスを示している。
JTAアーキテクチャでは、各リソースマネージャ上に インタフェースを実装してTPモニターから制御できるようにする必要がある。前述したように各リソースマネージャには以下のような固有のAPIがある。
Java Transaction Service.
Java Transaction Service (JTS) とは、JTAを使ったトランザクションマネージャの実装である。CORBAアーキテクチャに基づいており、複数のJTS間のトランザクションの伝播にはIIOPを使う。Jakarta EEアプリケーションサーバはJTSの実装が必須とされている。