System.EnterpriseServices.CompensatingResourceManager Namespace
The System.EnterpriseServices.CompensatingResourceManager namespace provides classes that allow you to use a Compensating Resource Manager (CRM) in managed code. A CRM is a service provided by COM+ that enables you to include non transactional objects in Microsoft Distributed Transaction Coordinator (DTC) transactions. Although CRMs do not provide the capabilities of a full resource manager, they do provide transactional atomicity (all or nothing behavior) and durability through the recovery log.
| Class | Description | |
|---|---|---|
![]() | ApplicationCrmEnabledAttribute | Enables Compensating Resource Manger (CRM) on the tagged application. |
![]() | Clerk | Writes records of transactional actions to a log. |
![]() | ClerkInfo | Contains information describing an active Compensating Resource Manager (CRM) Clerk object. |
![]() | ClerkMonitor | Contains a snapshot of all Clerks active in the process. |
![]() | Compensator | Represents the base class for all Compensating Resource Manager (CRM) Compensators. |
![]() | LogRecord | Represents an unstructured log record delivered as a COM+ CrmLogRecordRead structure. This class cannot be inherited. |
| Enumeration | Description | |
|---|---|---|
![]() | CompensatorOptions | Specifies flags that control which phases of transaction completion should be received by the Compensating Resource Manager (CRM) Compensator, and whether recovery should fail if questionable transactions remain after recovery has been attempted. |
![]() | LogRecordFlags | Describes the origin of a Compensating Resource Manager (CRM) log record. |
![]() | TransactionState | Specifies the state of the current Compensating Resource Manager (CRM) transaction. |
For information about using CRM, see How to: Create a Compensating Resource Manager (CRM) .

