CORBA 2.6.1 Programmer's Reference

Model Interoperability (2.14.3)
The specification provides for interoperability with X/Open DTP through the TX and XA interfaces.
NSOTS does not support those interfaces because the TMF subsystem is the native transaction manager
for HP NonStop Kernel operating system environments (not X/Open). NSOTS extends the Current
interface with the tmf_start(xid) and tmf_end() procedures (where xid is a transaction
identifier obtained from tmf_get_tx_id_() ). They correspond to X/Open xa_start() and
xa_end(). They may be used to update Open TMF legacy applications. They allow the application to
tell NSOTS to join and suspend its participation in an extant Open TMF transaction. They cause NSOTS
to join the Open TMF transaction and to have the transaction context implicitly propagated to CORBA
transactional objects. Only one process current transaction controller (the application, Tuxedo, or
NSOTS) should be present at a time. Before calling tmf_start(xid), the application should suspend
its process current transaction by calling tmf_suspend_() or tpsuspend(), as appropriate. After
calling tmf_end() the application should resume its process current transaction by calling
tmf_resume_() or tpresume() , as appropriate.
X/OPEN Checked Transactions: Reply Check
(2.13.4.1)
Deferred synchronous requests have not been tested in NSOTS and their behavior is not known.
XID (B.3.3)
The specification says, "tightly-coupled concurrency is assumed (a lock held by a transaction may be
accessed by any participant of the same transaction)." Because of the way NSOTS interoperates with the
Open TMF subsystem, each import and export of a transaction to a different process creates a new
transaction branch. In the Open TMF environment these branches are loosely coupled. This means that
the work of two transaction branches is not recognized as being part of the same transaction. And two
branches attempting to lock the same SQL data may encounter SQL errors or deadlocks. This situation is
the so-called diamond access problem. It can only be avoided by appropriate application design. For a
discussion of design considerations, see the Programmer's Guides.
Chapter 6. Event Service Chapter 8. NonStop CORBA vthread
Interface