コンテンツにスキップ

「Java Transaction API」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
m編集の要約なし
編集の要約なし
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
{{出典の明記|date=2021年6月}}
{{出典の明記|date=2021年6月}}
'''Java Transaction API''' (JTA) とは[[Jakarta EE]](旧・Java EE)の[[アプリケーションプログラミングインタフェース|API]]の1つであり、[[X/Open XA|XA]]リソース間の分散[[トランザクション処理]]を扱う。JTAは[[Java Community Process]]でJSR 907として開発された仕様である。JTAは以下を提供する:
'''Jakarta Transactions'''は、[[Eclipse Foundation]]が開発している、[[X/Open XA|XA]]リソース間の分散[[トランザクション処理]]を扱う[[Java]]の[[アプリケーションプログラミングインタフェース|API]]で、[[Jakarta EE]] Platformに含まれている。Java 8までは、[[Jakarta EE|Java Platform, Enterprise Edition]]の一部で、'''Java Transaction API''' ('''JTA''') という名称だった。


JTAは以下を提供する:
*トランザクション境界の設定
*トランザクション境界の設定
*[[X/Open XA]] APIを使ったトランザクション処理
*[[X/Open XA]] APIを使ったトランザクション処理

== 沿革 ==
* 2002年11月6日 - Java Transaction API 1.0<ref>{{Cite web |title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 907 |author= |work=jcp.org |date= |access-date=25 September 2025 |url= https://www.jcp.org/en/jsr/detail?id=907}}</ref>
* 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 に含まれる。<ref>{{Cite web |title=Jakarta Transactions 1.3 {{!}} Jakarta EE {{!}} The Eclipse Foundation |author= |work=Jakarta® EE: The New Home of Cloud Native Java |date= |access-date=25 September 2025 |url= https://jakarta.ee/specifications/transactions/1.3/}}</ref>
* 2020年10月8日 - Jakarta Transactions 2.0。Jakarta EE 9, 10, 11 に含まれる。パッケージ名が javax.transaction から jakarta.transaction に変更になった。<ref>{{Cite web |title=Jakarta Transactions 2.0 {{!}} Jakarta EE {{!}} The Eclipse Foundation |author= |work=Jakarta® EE: The New Home of Cloud Native Java |date= |access-date=25 September 2025 |url= https://jakarta.ee/specifications/transactions/2.0/}}</ref>


==X/Open XAアーキテクチャ ==
==X/Open XAアーキテクチャ ==
28行目: 37行目:


==脚注==
==脚注==
{{reflist}}
<references />


== 外部リンク ==
== 外部リンク ==
{{Wikibooks|Java|Java}}
{{Wikibooks|Java|Java}}
*[https://jakarta.ee/specifications/transactions/ Jakarta Transactions]
⚫
*[http://java.sun.com/products/jta/ Java Transaction API (JTA)]
*[http://java.sun.com/products/jts/ Java Transaction Service (JTS)]
*[https://www.oracle.com/java/technologies/jta.html Java Transaction API (JTA)]
⚫
<!-- *[https://java.sun.com/products/jts/ Java Transaction Service (JTS)] -->
*[http://www.jcp.org/en/jsr/detail?id=907 JSR 907]
*[https://www.jcp.org/en/jsr/detail?id=907 JSR 907]


{{Java}}
{{Java}}
41行目: 51行目:
[[Category:Java enterprise platform|Transaction API]]
[[Category:Java enterprise platform|Transaction API]]
[[Category:Java API]]
[[Category:Java API]]
[[Category:Eclipse Foundation|Transactions]]

2025年9月26日 (金) 04:09時点における最新版

Jakarta Transactionsは、Eclipse Foundationが開発している、XAリソース間の分散トランザクション処理を扱うJavaのAPIで、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日閲覧。

外部リンク

[編集 | ソースを編集]