Jakarta Transactionsは、Eclipse Foundationが開発している、XAリソース間の分散トランザクション処理を扱うJavaAPIで、Jakarta EE Platformに含まれている。Java 8までは、Java Platform, Enterprise Editionの一部で、Java Transaction API (JTA) という名称だった。

JTAは以下を提供する:

  • トランザクション境界の設定
  • X/Open XA APIを使ったトランザクション処理

沿革

編集
  • 2002年11月6日 - Java Transaction API 1.0[1]
  • 2007年2月14日 - Java Transaction API 1.1
  • 2013年6月17日 - Java Transaction API 1.2
  • 2018年4月2日 - Java Transaction API 1.3
  • 2019年8月2日 - Jakarta Transactions 1.3。Jakarta EE 8 に含まれる。[2]
  • 2020年10月8日 - Jakarta Transactions 2.0。Jakarta EE 9, 10, 11 に含まれる。パッケージ名が javax.transaction から jakarta.transaction に変更になった。[3]

X/Open XAアーキテクチャ

編集
X/Open XAアーキテクチャの概念図

X/Open XAアーキテクチャでは、トランザクションマネージャ(あるいはTPモニター)がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば関係データベースではJDBC APIが使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始、コミットロールバックを指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。

JTAの実装

編集
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がある。

  • 関係データベース用: JDBC
  • メッセージングサービス用: JMS
  • 汎用EIS(企業情報システム)リソース用: Jakarta EE コネクター API

Java Transaction Service

編集

Java Transaction Service (JTS) とは、JTAを使ったトランザクションマネージャの実装である。CORBAアーキテクチャに基づいており、複数のJTS間のトランザクションの伝播にはIIOPを使う。Jakarta EEアプリケーションサーバはJTSの実装が必須とされている。

脚注

編集
  1. ^ The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 907”. jcp.org. 2025年9月25日閲覧。
  2. ^ Jakarta Transactions 1.3 | Jakarta EE | The Eclipse Foundation”. Jakarta® EE: The New Home of Cloud Native Java. 2025年9月25日閲覧。
  3. ^ Jakarta Transactions 2.0 | Jakarta EE | The Eclipse Foundation”. Jakarta® EE: The New Home of Cloud Native Java. 2025年9月25日閲覧。

外部リンク

編集

📚 Artikel Terkait di Wikipedia

Java Database Connectivity

Java Database Connectivity (JDBC)は、Java と関係データベースの接続のためのAPI。ODBCをベースにサン・マイクロシステムズおよび DataDirect が共同で開発していると言われている。そのためドライバのデフォルトの自動コミットの有効化など似ている点も多々ある。

Jakarta EE

Foundationが開発している、Javaで実装されたアプリケーションサーバの標準規格及びそのAPI。前身は Java Platform, Enterprise Edition (Java EE) だが、Java EE からパッケージ名が変わっているので上位互換というわけではない。 Java Platform,

Java Community Process

API仕様を確かめるための技術互換キットを提供する。 JCP自身はJSRによって記述されている。最新バージョンはJSR 355に記述された2.9である。 300以上のJSRsがある。 ^ 英: Java specification requests Javaコミュニティ・プロセス

トランザクション処理

オンライントランザクション処理 トランザクションモニター CICS IMS Jakarta EE (例えば、WebSphere Application Server) Java Transaction API (JTA) Transaction Processing Facility (z/TPF)

Spring Framework

aプラットフォーム上でRDBアクセス機能を提供。また、NoSQL系データベースもサポート トランザクション管理: 各種トランザクション制御APIを統合し、Javaオブジェクトのトランザクション管理を提供 Model View Controller: HTTPとServletベースのフレームワークで、

プロセス間通信

APIの例である。 Appleの Apple event(従来は Interapplication Communications、IAC と呼ばれていた) Eneaの LINX - Linux向け(オープンソース)と Enea OSE で動作するバージョンがある。 CMUによるIPC実装 Javaの

.NET Remoting

1997年(後にActiveXへ) COM+とMicrosoft Transaction Server: 2000年 Common Object Request Broker Architecture (CORBA) やJava RMIのような類似技術と同様、.NET

CICS

(XRFサポート) 1997年 CICS Transaction Server に改称 1999年 CICS Transaction Server 1.3 (Javaサポート、CICS Webサポート(CWS)) 2007年 CICS Transaction Server 3.2 (Webサービス強化)