Q. What is the difference between JTA 1.0.1 and JTA 1.1?
A. There is a new interface, TransactionSynchronizationRegistry, that allows an application or a component to get some help from the container with synchronizing its state with the transaction context of its environment.
This interface is intended for use by system level application server components such as persistence managers. This provides the ability to register synchronization objects with special ordering semantics, associate resource objects with the current transaction, get the transaction context of the current transaction, get current transaction status, and mark the current transaction for rollback.
This interface is implemented by the application server by a stateless service object. The same object can be used by any number of components with thread safety.
Q. Can other components use this interface?
The interface can be used by any component. There are no restrictions.
Q. In which environments can I use the new interface?
A. The interface is defined to be available at a specific JNDI location java:comp/TransactionSynchronizationRegistry from within an application server that conforms to the Java EE 5 specification.
Q. What is the rationale for providing this interface?
A. All application servers provide a means for giving certain components access to transaction context but these means are proprietary and offer different functionality.
Q. How can I get access to the JTA 1.1 jar that contains the new interface?
A. The jar is available for download from https://maven- repository.dev.java.net/nonav/repository/javax.transaction/jars/ transaction-api-1.1.jar or if using maven, you can add the repository https://maven-repository.dev.java.net/nonav/repository and declare a dependency in the project file:
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>transaction-api</artifactId>
<version>1.1</version>
</dependency>
Q. What version of JDK was the jar compiled with?
A. JDK 1.3 was used for the compilation of the jar.
Q. Is the jar from java.net more "official" than other versions of the jar?
A. This implementation of the collection of interfaces is part of the Reference Implementation of Java EE 5. But the Java EE 5 specification does not mandate any particular packaging of the interfaces into jars. In particular, there is no specification of the existence of a JTA 1.1 jar, nor the contents of this jar or packaging it as a maven repository.
Q. Could there be a "better" or more functional version of the JTA 1.1 jars or interfaces?
A. Not really. These interfaces are part of the official Java EE 5 specification, and the interfaces cannot be subsetted or supersetted. All versions of the interfaces must work exactly the same, as demonstrated by passing the Java EE 5 CTS.
Q. Is there an open source version of the jar available?
A. Not yet. Since this is a specification jar, only a Java EE 5 compliant application server can publish a production-ready version of the jar. There are not yet any open source Java EE 5 compliant application servers.