Java Transaction API (JTA) allows transactions to span more than one resource. So, for example, a transaction can span two databases, or a database and a JMS Server.
The main integration point is the interface
javax.transaction.TransactionManager. It allows to manage transactions as well
as to enlist transactional resources. Only resources that are enlisted with a transaction
are taking part in transactions coordinated by it.
The main interface for user code is
allows to begin, commit and rollback transactions but not to enlist resources.
See also the JTA 1.2 API.