import javax.transaction.UserTransaction;
UserTransaction transaction = com.arjuna.ats.jta.UserTransactionFactory.getUserTransaction();
transaction.begin();
transaction.commit();
transaction.rollback();
import javax.transaction.TransactionManager;
import com.arjuna.ats.jta.TransactionManagerFactory;
TransactionManager manager = TransactionManagerFactory.transactionManager();
manager.registerTransactionSynchronization(new MyTransactionSynchronization());
import javax.sql.XAConnection;
import javax.transaction.xa.XAResource;
import com.arjuna.ats.jta.xa.XidImple;
import com.arjuna.ats.jta.xa.XAResourceImple;
XAConnection connection = dataSource.getXAConnection();
XAResource resource = connection.getXAResource();
resource.start(new XidImple(), XAResource.TMNOFLAGS);
if (shouldCommit) {
resource.end(new XidImple(), XAResource.TMSUCCESS);
resource.commit(new XidImple(), false);
} else {
resource.end(new XidImple(), XAResource.TMSUCCESS);
resource.rollback(new XidImple());
}
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.arjuna.ats</groupId>
<artifactId>jta</artifactId>
<version>5.9.0.Final</version>
</dependency>
spring.jta.transaction-manager-id=default
yaml
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver