Bug 995490 - Clarify difference between JTA (API) and JTA transactions and JTS transactions
Clarify difference between JTA (API) and JTA transactions and JTS transactions
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Documentation (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: post-GA
: EAP 6.3.0
Assigned To: David Michael
Hayk Hovsepyan
: Documentation
Depends On:
  Show dependency treegraph
Reported: 2013-08-09 10:16 EDT by Ondrej Chaloupka
Modified: 2014-11-23 18:16 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Build: CSProcessor Builder Version 1.11 Build Name: 11864, Development Guide-6.1-4 Build Date: 19-07-2013 12:11:48 Topic ID: 4300-432593 [Specified]
Last Closed: 2014-11-23 18:16:59 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Ondrej Chaloupka 2013-08-09 10:16:13 EDT
Title: About Java Transactions API (JTA)
There could be an misunderstanding in terms of JTA API and JTA/JTS transactions. This terms should be clarified.

It would be fine to describe that JTA means java transaction api defined in JSR. And that the narayana uses term JTA expression for local (not distributed) transactions. And JTS transactions for distributed ones.
In fact JTS is as well specification based on OTS (Object Transaction Service).

The JTA api is uniform (not dependent whether JTS or JTA transactions are used). JTA/JTS transaction is just implementation/background. It defines how Narayana will be working under cover (using local memory or iiop message for communication etc.).
Comment 1 Ondrej Chaloupka 2013-08-09 10:22:51 EDT
There is fine summary I think:
Comment 4 Ondrej Chaloupka 2014-08-08 09:17:47 EDT

thanks you for changes but as this is a bit older issue several things changed and the text is quite poor to be read. Let me put here brand new suggestion for text in 11.2.5. and 11.2.6. (numbers from Revision 6.3.0-29)


11.2.5. About Java Transactions API (JTA)
Java Transactions API (JTA) is part of Java Enterprise Edition specification. It is defined in JSR-907.
Implementation of JTA is brought by transaction manager which is covered by project Narayana in case of EAP application server. Transaction manager then allows application to assign different resources under one single global transaction. Those resources could be e.g. databases or jms brokers. We call the global transaction XA transaction. Unfortunately there is a limitation that only resources which cover XA capabilities could be fully part of such transaction.
Be aware that there could be a misunderstanding of term JTA in this document. JTA means java transaction API but it's used as a term how the transaction manager processes transaction under the cover. Transaction manager could work in mode of jta transactions where data is shared via memory and transaction context is transferred along by remote ejb calls and jts mode where data is shared by sending corba messages and transaction context if transferred along by iiop calls. Both modes support distribution of transaction over more EAP servers.
Annotations are one method for creating and controlling transactions within your code.

See more at: 
11.2.7. About XA Datasources and XA Transactions 
11.2.11. About Distributed Transactions
11.8.2. Configure the ORB for JTS Transactions

⁠11.2.6. About Java Transaction Service (JTS)
Java Transaction service is a mapping of the OTS to Java. Java application rather used the JTA API to manage transaction. JTA then could interact with a JTS transaction implementation (as mentioned above when transaction manager is switched to jts mode). If you want to use special JTS capabilities, as for example nested transaction, then you will need manually work with JTS api.
JTS works over IIOP protocol. Transaction managers that usese JTS could communicate with each other using a process called an Object Request Broker (ORB), using a communication standard called Common Object Request Broker Architecture (CORBA).
Using JTA API then from an application standpoint, a JTS transaction behaves in the same ways as a JTA transaction.

The implementation of JTS included in JBoss EAP 6 supports distributed JTS transactions across multiple JBoss EAP 6 servers. The difference between distributed JTS transactions and fully-compliant JTS transactions is interoperability with external third-party ORBs. This feature is unsupported with JBoss EAP 6.

11.2.3, “About the Transaction Coordinator or Transaction Manager”
Comment 7 Hayk Hovsepyan 2014-09-22 04:09:20 EDT
Verified Revision 6.3.0-31

Note You need to log in before you can comment on or make changes to this bug.