Enumerating Nodes
When you use the standard WMI enumeration procedures to enumerate nodes with the Network Load Balancing (NLB) provider, the results vary as follows:
- You always get a MicrosoftNLB_Node instance representing the provider node. This node is always listed first in the enumeration.
- You will get additional MicrosoftNLB_Node instances for each node that is currently running NLB and that has the MicrosoftNLB_ClusterSetting RemoteControlEnabled property set to TRUE.
The following table illustrates enumeration results in a NLB cluster consisting of nodes A, B, C, and D. The results shown for a node are obtained by connecting directly to the node (see Making Direct Connections) and enumerating all available nodes:
Provider node | NLB is running | Cluster operations are enabled | RemoteControlEnabled | Enumeration results (in order of appearance) |
---|---|---|---|---|
A |
yes |
yes |
TRUE |
A, C |
B |
yes |
yes |
FALSE |
B, A, C |
C |
yes |
no |
TRUE |
C, A |
D |
no |
no |
TRUE |
error |
- Node D does not show up in any enumeration because NLB is not running on that node.
- Node C shows up in all enumerations even though cluster operations have been stopped on that node.
- Node B appears only in enumerations performed from node B.
- WMI allows a connection to Node D, but any provider operation will return an error because NLB is not running on node D.
Because of the behavior described above, WMI enumeration is not a reliable indicator of cluster membership. This is by design. Do not use enumeration as the basis of a NLB cluster membership algorithm. The most accurate method to use to enumerate the nodes in a NLB cluster is to locate the cluster using the cluster IP address. For an example, see Monitoring Application Level Health.