「Java Transaction API」の版間の差分
m編集の要約なし |
編集の要約なし |
||
| (16人の利用者による、間の21版が非表示) | |||
| 1行目: | 1行目: | ||
{{出典の明記|date=2021年6月}} |
|||
'''Java Transaction API'''('''JTA''')とは、[[Java EE]]の[[Application Programming Interface|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を使ったトランザクション処理 |
|||
== 沿革 == |
|||
| ⚫ | |||
* 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> |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
* 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 |
||
| ⚫ | |||
| ⚫ | {{lang|en|X/Open XA}}アーキテクチャでは、トランザクションマネージャ(あるいは[[トランザクション処理|TPモニター]])がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば[[関係データベース]]では[[Java Database Connectivity|JDBC]] APIが使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始、[[コミット]]、[[ロールバック]]を指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。 |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
* {{Javadoc:EE|package=javax.transaction|javax/transaction}} |
* {{Javadoc:EE|package=javax.transaction|javax/transaction}} |
||
* {{Javadoc:EE|package=javax.transaction.xa|javax/transaction/xa}} |
* {{Javadoc:EE|package=javax.transaction.xa|javax/transaction/xa}} |
||
JTA |
JTAはX/Open XAアーキテクチャに基づいているが、トランザクション境界を設定するために2つのAPIを定義している。JTAでは EJBサーバのようなアプリケーションサーバとその上のアプリケーションコンポーネントを区別する。アプリケーションサーバがトランザクションの開始/コミット/ロールバックを指示するための[[インタフェース (情報技術)|インタフェース]]として{{Javadoc:EE|package=javax.transaction|javax/transaction|TransactionManager}}がある。また、[[Java Servlet|サーブレット]]や[[Enterprise JavaBeans|EJB]]がトランザクションを管理するためのインタフェースとして {{Javadoc:EE|package=javax.transaction|javax/transaction|UserTransaction}} がある。右の図は {{lang|en|X/Open XA}}インタフェースとして使われる JTA のクラスを示している。 |
||
JTA |
JTAアーキテクチャでは、各リソースマネージャ上に {{Javadoc:EE|package=javax.transaction.xa|javax/transaction/xa|XAResource}}インタフェースを実装してTPモニターから制御できるようにする必要がある。前述したように各リソースマネージャには以下のような固有のAPIがある。 |
||
* |
* 関係データベース用: [[Java Database Connectivity|JDBC]] |
||
* メッセージングサービス用: [[Java Message Service|JMS]] |
* メッセージングサービス用: [[Java Message Service|JMS]] |
||
* 汎用EIS(企業情報システム)リソース用: |
* 汎用EIS(企業情報システム)リソース用: Jakarta EE コネクター API |
||
== |
==Java Transaction Service== |
||
'''Java Transaction Service''' |
'''Java Transaction Service''' (JTS) とは、JTAを使ったトランザクションマネージャの実装である。[[CORBA]]アーキテクチャに基づいており、複数のJTS間のトランザクションの伝播には[[IIOP]]を使う。Jakarta EE[[アプリケーションサーバ]]はJTSの実装が必須とされている。 |
||
==脚注== |
|||
{{reflist}} |
|||
== 外部リンク == |
== 外部リンク == |
||
{{Wikibooks|Java|Java}} |
{{Wikibooks|Java|Java}} |
||
*[https://jakarta.ee/specifications/transactions/ Jakarta Transactions] |
|||
| ⚫ | |||
* |
*[https://www.oracle.com/java/technologies/jta.html Java Transaction API (JTA)] |
||
| ⚫ | |||
* |
*[https://www.jcp.org/en/jsr/detail?id=907 JSR 907] |
||
{{Java}} |
{{Java}} |
||
| 36行目: | 50行目: | ||
[[Category:Java specification requests|Transaction API]] |
[[Category:Java specification requests|Transaction API]] |
||
[[Category:Java enterprise platform|Transaction API]] |
[[Category:Java enterprise platform|Transaction API]] |
||
[[Category: |
[[Category:Java API]] |
||
[[Category:Eclipse Foundation|Transactions]] |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
[[pt:Java Transaction API]] |
|||
[[ru:Java Transaction API]] |
|||
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アーキテクチャでは、トランザクションマネージャ(あるいはTPモニター)がデータベースなどの複数リソース間のトランザクションを調整する。各リソースにはマネージャが対応している。リソースマネージャは一般にリソースを操作するための独自APIを持ち、例えば関係データベースではJDBC APIが使われる。さらに、TPモニターは複数のリソースマネージャ間の分散トランザクションの調整を行う。そして、アプリケーションはTPモニターと通信し、TPモニターにトランザクション群の開始、コミット、ロールバックを指示する。また、アプリケーションは個々のリソースマネージャとも独自APIで通信し、リソースの更新などを行う。
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 (JTS) とは、JTAを使ったトランザクションマネージャの実装である。CORBAアーキテクチャに基づいており、複数のJTS間のトランザクションの伝播にはIIOPを使う。Jakarta EEアプリケーションサーバはJTSの実装が必須とされている。
- ↑ “The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 907”. jcp.org. 2025年9月25日閲覧。
- ↑ “Jakarta Transactions 1.3 | Jakarta EE | The Eclipse Foundation”. Jakarta® EE: The New Home of Cloud Native Java. 2025年9月25日閲覧。
- ↑ “Jakarta Transactions 2.0 | Jakarta EE | The Eclipse Foundation”. Jakarta® EE: The New Home of Cloud Native Java. 2025年9月25日閲覧。