3.2.3 Initialization

When the Core Transaction Manager Facet is initialized:

  • The MSDTC Connection Manager: OleTx Management Protocol [MS-CMOM] uses the registry to persistently store and retrieve the values for the security settings using the Remote Registry Protocol [MS-RRP] and Failover Cluster: Management API (ClusAPI) Protocol [MS-CMRP]. The registry is shared with the MSDTC Connection Manager: OleTx Management Protocol [MS-CMOM].

  • The Security Level field is loaded directly from the registry key defined in [MS-CMOM] section 3.3.1.2.3.<22>

  • The following Security Access flags are loaded directly from the registry keys defined in [MS-CMOM] sections 3.3.1.2.1 and 3.3.1.2.2.

    • Allow Network Access

    • Allow Network Transactions

    • Allow Inbound Transactions

    • Allow Outbound Transactions

    • Allow Remote Administration

    • Allow Remote Clients

    • Allow TIP

    • Allow XA

    • Allow LUTransactions

  • The lower-layer transport protocol, the MSDTC Connection Manager: OleTx Multiplexing Protocol (section 2.1) MUST be initialized as specified in [MS-CMP] section 3.1.3, by passing the following parameter values as specified in section 2.1.2. The MSDTC Connection Manager: OleTx Multiplexing Protocol initialization as specified in [MS-CMP]  section 3.1.3,  initializes the MSDTC Connection Manager: OleTx Transports Protocol layer with additional parameters as specified in [MS-CMPO] section 3.2.3.

    • The Security Level field ([MS-CMPO] Local Partner State (section 3.2.1.1)) is initialized with the Security Level value in Core Transaction Manager Facet.

    • The Minimum Level 3 Version Number and Maximum Level 3 Version Number fields ([MS-CMPO] section 3.2.1.1) are initialized with the computed minimum and maximum protocol version values, as specified in section 3.1.4.2.

    • Compute a Local Name Object by initializing the fields of the Name object (see [MS-CMPO] section 3.2.1.4) with following values:

      • HostName: The HostName field is initialized with the value of the ComputerName.NetBIOS element of the machine as specified in [MS-WKST] section 3.2.1.2.

      • CID: The CID field is initialized as follows:

        • Read the string value from the <MSDTC_GUID> registry key as specified in [MS-CMOM] section 2.2.3.5, for the Description\Default value of "MSDTC" as specified in [MS-CMOM] section 2.2.3.5.1.

        • Convert the <MSTDC_GUID> string to GUID as specified in [C706]  Appendix A.

      • Protocols:

        • If the Allow Network Access flag is set to false:

          • The Protocols field is initialized to PROT_LRPC flag as described in [MS-CMPO] (section 2.2.4).

        • Otherwise:

          • The Protocols field is initialized directly from the "ServiceNetworkProtocols" registry key as specified in [MS-CMOM] section 2.2.3.4.

    • The computed Local Name Object is used to initialize the Local Name Object field ([MS-CMPO] section 3.2.1.1).

  • The protocol extension list MUST be populated with instances that are obtained from an implementation-specific source.

  • If the protocol extension list is not empty, the Core Transaction Manager Facet MUST perform the following actions:

    • Query each protocol extension for its extended whereabouts information by using the Whereabouts and Whereabouts Size fields of the object.

    • Create an array of STmToTmProtocol (section 2.2.5.9) structures and assign it to the Extended Whereabouts field of the Core Transaction Manager Facet:

      • The array MUST contain an entry for each protocol extension that contributes extended whereabouts information.

      • The tmprotDescribed field of each entry MUST be set to TmProtocolExtended, as specified in section 2.2.6.2.

      • The rgbTmProtocolData field of each entry MUST contain an SExtendedEndpointInfo (section 2.2.5.8) structure.

      • The cbTmProtocolData field of each entry MUST be set to the length, in bytes, of the rgbTmProtocolData field.

    • Assign the size, in bytes, of the STmToTmProtocol array to the Extended Whereabouts Size field of the Core Transaction Manager Facet.

    • Assign the number of protocol extensions that contribute extended whereabouts information to the STmToTmProtocol array to the Extended Whereabouts Protocol Count field of the Core Transaction Manager Facet.