3.2.1.5 Protocol Extension Objects

A protocol extension is an implementation-specific module that represents the ability to perform transaction processing by using a transaction coordination protocol that is not OleTx.

Protocol extension objects MUST leverage the following vendor extensibility points in the Core Transaction Manager Facet:

  • The ability to augment the list of transaction manager facets, as specified in section 3.2.1.4, to include additional protocol-specific facets

  • The ability to define custom behavior for the Name and Property fields on Enlistment objects that are created inside these facets

  • The ability to contribute whereabouts information to the extended whereabouts field of the core transaction manager

  • The ability to contribute recovery information to Enlistment objects that are stored in the durable log, as specified in section 3.1.1

A protocol extension object MUST provide the following data structures:

  • Identifier: A GUID that uniquely identifies the protocol extension

  • Whereabouts: An array of bytes that represents the protocol extension

  • Whereabouts Size: The size of the Whereabouts array