A Resource Monitor provides a communication, monitoring, and processing layer between the Cluster service and one or more resources. Resource Monitors have the following characteristics:
- A Resource Monitor always runs in a process separate from the Cluster service. If a resource fails, the Resource Monitor isolates the Cluster service from the effects. If the Cluster service fails, the Resource Monitor allows its resources to shut down gracefully.
- To work with a resource, a Resource Monitor loads the resource DLL responsible for that resource type into its process.
- When the Cluster service requests an operation on a resource, the Resource Monitor routes the request to the appropriate entry point function of the resource DLL responsible for the resource. The Resource Monitor performs default processing for some resource operations.
- A Resource Monitor stores synchronized state data, allowing the Cluster service and resource DLLs to operate asynchronously, checking and updating resource status as needed.
- A Resource Monitor periodically checks the operational status of all of its resources. For more information on this process, see Resource Failure.
By default, the Cluster service creates one Resource Monitor per node. This default can be overridden when a resource is created by requesting a separate monitor. Separate monitors are recommended for unstable resources and for debugging new resource types. For information about debugging new resource types, see Debugging Resource DLLs.