A method, apparatus, system, and signal-bearing medium that, in an
embodiment, receive an allocation request for a resource and registers
the resource as a non-voting participant if the resource desires to
delegate commit voting to another resource. The registered resource is
then prohibited from participating in an enclosing transactional context
and instead is informed when the transaction completes. The resource is
enlisted as a voting participant if the resource does not desire to
delegate commit voting. In this way, when multiple resources are used in
a transaction, a resource may be registered and receive notifications of
transaction completion instead of being enlisted and voting on commit
decisions. The result of a transaction in which a single resource takes
responsibility for a number of other resources is that transaction
completion avoids the two-phase commit protocol and the resulting
performance degradation.