The cluster as the resource manager

Although the cluster comprises multiple Adaptive Servers, it must provide a single system view to the user. Accordingly, each application must view the complete cluster as the single RM; individual instances should not be considered as separate RMs.

For example, when making a remote procedure call on a cluster, use the cluster name as the RM:

exec cluster_name.dbname.owner.procedure_name

Make sure that the transaction manager (TM ) performing XA transactions on a cluster uses the cluster name as the logical resource manager (LRM) name in the XA configuration file. Do not use the instance name. See the XA Interface Integration Guide for CICCS, Encina, and TUXEDO for more information about XA configuration.

Similarly, applications using jConnect to run XA transactions need to use the cluster name when creating XADataSource objects. For example:

XADataSource xads = (XADataSource) 
	ctx.lookup("server_name=cluster_name");

Although the cluster is named as the RM, each transaction runs on a single instance (the owner instance) in the cluster, and the state of the transaction is maintained only on that instance. A running transaction cannot migrate between instances in the cluster. All Transact-SQL statements and transaction commit processing execute only on the instance that owns the transaction.