Partager via


2.1.2.3 Computing a Name Object

The Name object that is used to initiate a session is obtained in a variety of ways. This section defines how to obtain the appropriate Name object for several common situations. The specific transaction processing roles mentioned in these sections (applications, resource managers, and transaction managers) are defined in section 1.3.3.

When an application or resource manager initiates a connection to its transaction manager, the application or resource manager MUST use implementation-specific configuration information to compute a Name object that represents the transaction manager:

  1. For pull propagation of transactions, the source application MUST include the Name object representing its transaction manager in the marshaling information that is sent to the destination application. The Propagation Token (section 2.2.5.4) structure SHOULD be used for marshaling this information.

  2. For pull propagation of transactions, the subordinate transaction manager (the transaction manager of the destination) MUST communicate its own Name object to the superior transaction manager (the source transaction manager) using a CONNTYPE_PARTNERTM_BRANCH connection (section 2.2.9.1.2.1).

  3. For push propagation of transactions, the destination application MUST make the Name object that represents its transaction manager available to the source application. The SWhereabouts (section 2.2.5.11) structure SHOULD be used for marshaling this information. Alternatively, the NAMEOBJECTBLOB (section 2.2.5.3) structure MAY be used for the same purpose.<1>

  4. For push propagation of transactions, the superior transaction manager MUST communicate its own Name object to the subordinate transaction manager using a CONNTYPE_PARTNERTM_PROPAGATE (section 2.2.9.1.1.1) connection.