1. A method of processing a transaction, the method comprising: executing the transaction, including dynamically enlisting a plurality of resources to be committed by the transaction during execution of the transaction, and wherein the resources to be committed by the transaction are unknown prior to execution of the transaction; and storing information about each enlisted resource in the plurality of resources with the transaction in a transaction log, including information about a state of each resource, to facilitate recovery of the transaction.