Protection against interleaving transactions using a transaction manager
A transaction manager maintains an enlistment data structure used for managing resource object enlistment. A transaction manager may receive an enlistment request initiated from a resource object. Upon receiving the request, the transaction manager will determine if the resource object is already enlisted. If the resource object is already enlisted, the transaction manager will block the enlistment request. If the resource object is not enlisted, the transaction manger will enlist the resource. Upon enlistment, the resource object will perform a requested task or service. After the requested task or service is complete, the resource initiates a delistment request to the transaction manager. After receiving the delistment request from the resource, object, the transaction manager is delisted from the enlistment data structure.