The transaction aspects of the BlackTie system which fulfill the contract defined in the TX specification are provided by the industry proven JBoss Transactions product and as such the reader is suggested to consult the broad range of documentation provided by the transactions team on their website.
From the point of view of this discussion, the main thing to indicate is that BlackTie wraps Resource Managers using a BlackTie wrapper OTS Resource. Consequently the external JBoss Transactions is able to drive prepare/commit/rollback/forget on the RMs. The BlackTie library running with the application is responsible for triggering commit/rollback invocations initiated on behalf of the client by JBoss Transactions and drives the other XA methods directly as appropriate.
Although as indicated above we do not intend to provide a primer on the TX specification due to wealth of information already present on the internet, it may be interesting to briefly explore one use case involving transactions in a fairly sophisticated manner.
As can be seen in the above diagram, using only the standard xatmi.h and tx.h header files the client was able to orchestrate a transaction with the following qualities:
Service 3 behavior is not considered part of the transaction
Service 1 extends the transaction to Service 4 without the need of any additional TX calls.