3.1.1.1.3 Resource Type

A resource is of exactly one resource type. The resource type codifies the functionality that is required to manage a resource and host it in a cluster. This codification might be implemented in an object, such as a dynamic-link library, that either is or is not present on a particular server. The following list provides examples of the type of functionality that can be attached to a resource type:

  • The procedure used to bring the resource online and offline.

  • The parameters used to configure the resource in the cluster.

  • The manner in which the health of the resource is monitored.

  • A restriction on the number of resources of that resource type that can be configured in a single cluster.

  • The manner in which the resource enters and exits locked mode (see section 3.1.1.1.1).

A resource type is uniquely identified in a cluster by a Unicode string that contains the resource type name. The resource type name is case-insensitive and contains any Unicode character in any position except as follows: the string is null-terminated, the string contains no Unicode null character other than for termination, the first character in the string is not "\", and the string contains at least one character that is not Unicode 0x20, 0x09, 0x0d, 0x0a, or null. The resource type name string does not exceed 514 bytes. Once a resource type is created, its name remains constant until it is deleted.

The resource type is part of the configuration of a resource and is thus included in nonvolatile cluster state. A resource type can have certain requirements for proper operation. These are referred to as its characteristics and they convey the following requirements to the cluster:

  • Only one instance of this resource type is allowed in the cluster.

  • Only one instance of this resource type is allowed in a group.

  • The deletion of a resource type is sent to every active node.

  • All configured nodes need to be active in order to delete the resource.

A protocol client can perform the following management operations on a cluster resource type:

  • Create: Create a new type of resource. For more information, see section 3.1.4.1.27 (protocol version 2) and section 3.1.4.2.27 (protocol version 3).

  • Delete: Delete a resource type. For more information, see section 3.1.4.1.28 (protocol version 2) and section 3.1.4.2.28 (protocol version 3).

  • Query Configuration: Query the configuration data for a resource type. For more information, see sections 3.1.4.1.8, 3.1.4.1.75, 3.1.4.1.76 and 3.1.4.1.103 (protocol version 2), and sections 3.1.4.2.8, 3.1.4.2.75, 3.1.4.2.76 and 3.1.4.2.103 (protocol version 3).

  • Set configuration: Change the configuration data for a resource type. For more information, see sections 3.1.4.1.75 and 3.1.4.1.76 (protocol version 2), and sections 3.1.4.2.75 and 3.1.4.2.76 (protocol version 3).