XA Support
C.1 Introduction
facility_name = user-specified facility name /resource_manager = the name of
those RMs this facility references
For example:
CREATE FACILITY test /front=N1 /back=N2/router=N3
/resource_manager=(employ_rm,payroll_rm)
C.1.3 Modified RTR API
An application written to use RTR with XA does not need all existing RTR
application programming interface statements. In particular, there is no longer a
need to include code to handle
rtr_mt_msg1_uncertain
messages.
C.1.4 RTR Open Channel
RTR relies on the server application to specify which RM it is attached to using
the open channel API. The server must submit an RM instance name with open
string to the RTR open channel API before accessing the desired database. Both
the RM instance name and the database name (RM name) contained in open
string must be the same as that registered earlier using the REGISTER RM
command. This information is now stored in the RTR key segment structure. A
new RTR_F_OPE_XA_MANAGED flag is created to associate the channel with
the XA interface. For example:
typedef struct {
rtr_keyseg_type_t ks_type; [RM_NAME_TYPE]
rtr_keylen_t ks_length; [N/A]
rtr_keylen_t ks_offset; [N/A]
rtr_pointer_t ks_lo_bound; [RM_NAME]
rtr_pointer_t ks_hi_bound; [OPEN_STRING]
} rtr_keyseg_t;
C.2 Microsoft DTC Support
RTR for Windows NT is interoperable with Microsoft’s Distributed Transaction
Controller (DTC). DTC is supported via the RTR XA software architecture. That
is, with the X/Open XA protocol, RTR users can develop application programs to
update MS SQL Server databases, MSMQ, or other Microsoft resource managers
under the control of a true distributed transaction.
This is possible because RTR (as a distributed transaction manager) is able
to directly communicate with MS DTC to manage a transaction or perform a
recovery via the XA protocol. For each standard XA call received from RTR, MS
DTC will translate it into a corresponding OLE transaction call that SQL Server
or MSMQ can use to update databases.
C–2 XA Support