Microsoft.SystemCenter.GroupPopulator

Applies To: Operations Manager 2007 R2

The Microsoft.SystemCenter.GroupPopulator data source module type is used to populate groups with class type instances. The module outputs System.Discovery.Data data.

Usage

Use the module when you want to implement a discovery rule that creates a relationship between a targeted group and each of the class type instances or other groups (subgroups) that it is to contain. A rule that implements this module is generally defining membership inclusion and exclusion criteria or rules for the targeted group.

Type Definition

<DataSourceModuleType ID="Microsoft.SystemCenter.GroupPopulator" Accessibility="Public" RunAs="Microsoft.SystemCenter.DatabaseWriteActionAccount" Batching="false">
  <Configuration>
    <IncludeSchemaTypes>
      <SchemaType>Microsoft.SystemCenter.GroupPopulationSchema</SchemaType>
    </IncludeSchemaTypes>
    <xsd:element name="RuleId" type="xsd:string" />
    <xsd:element name="GroupInstanceId" type="xsd:string" />
    <xsd:element name="GroupMonitoringClass" type="xsd:string" minOccurs="0" maxOccurs="1" />
    <xsd:element name="MembershipRules" type="MembershipRulesType" />
  </Configuration>
  <ModuleImplementation Isolation="Any">
    <Managed>
      <Assembly>Microsoft.Mom.DatabaseQueryModules, Culture="", PublicKeyToken="9396306c2be7fcc4", Version="6.0.4900.0"</Assembly>
      <Type>Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.GroupCalculationModule</Type>
    </Managed>
  </ModuleImplementation>
  <OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>

Parameters

The Microsoft.SystemCenter.GroupPopulator module supports the configuration parameters described in the following table.

Parameter Type Overrideable Description

RuleId

String

False

Required parameter. Defines the ID of the containing discovery rule. Always use the value $MPElement$. For more information about the variable notation for $MPElement$, see $MPElement.

GroupInstanceId

String

False

Required parameter. Defines the ID of the singleton group instance that will contain all discovered instances of the targeted class type. Always use the value $Target/Id$. For more information about the variable notation for $Target, see $Target.

GroupMonitoringClass

String

False

Optional parameter. Defines the class type ID of the group class type. Use this parameter if you want to create non-singleton groups. The format of this value would be $MPElement[Name="Sample.MyInstanceGroup.Group"]$.

MembershipRules

MembershipRulesType

False

Required parameter. Contains all the exclusion or inclusion rules that define membership requirements.

Composition

The Microsoft.SystemCenter.GroupPopulator module type is a managed module.

Remarks

The Microsoft.SystemCenter.GroupPopulator data source module is used to discover relationship type instances that define a containment relationship between a group and the class type that it contains. For more information about the general structure and meaning of a relationship definition in a management pack, see RelationshipType.

For more information about how to define your group and its contained class type instances, see MembershipRuleType.

None.

External Module References

None.

Sample

The following XML sample shows how to use the Microsoft.SystemCenter.GroupPopulator module type in a simple discovery rule. In this sample, the relationship to be discovered is Microsoft.SystemCenter.ComputerGroupContainsComputer. This is a singleton discovery, so every instance of a Windows Server 2000 computer will be grouped under the already existing Microsoft.SystemCenter.ComputerGroup group.

<RelationshipType ID="Microsoft.SystemCenter.ComputerGroupContainsComputer" Comment="computer groups contain computers" Accessibility="Public" Abstract="false" Base="System!System.Containment">
  <Source>Microsoft.SystemCenter.ComputerGroup</Source>
  <Target>System!System.Computer</Target>
</RelationshipType>
…
<Discovery ID="Microsoft.Windows.Server.2000.AllServersComputerGroupDiscovery" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.Server.2000.ComputerGroup">
  <Category>Discovery</Category>
  <DiscoveryTypes>
    <DiscoveryRelationship TypeID="SC!Microsoft.SystemCenter.ComputerGroupContainsComputer" />
  </DiscoveryTypes>
  <DataSource ID="DiscoveryDataSource" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
    <RuleId>$MPElement$</RuleId>
    <GroupInstanceId>$Target/Id$</GroupInstanceId>
    <MembershipRules>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Microsoft.Windows.Server.2000.Computer"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SC!Microsoft.SystemCenter.ComputerGroupContainsComputer"]$</RelationshipClass>
      </MembershipRule>
    </MembershipRules>
  </DataSource>
</Discovery>

The next section of this sample illustrates a discovery rule that implements more than one membership rule. Each one of the monitoring class instances will be contained in the Microsoft.SystemCenter.InstanceGroup group.

<RelationshipType ID="Microsoft.SystemCenter.InstanceGroupContainsEntities" Base="System!System.Containment" Abstract="false" Accessibility="Public">
  <Source>Microsoft.SystemCenter.InstanceGroup</Source>
  <Target>System!System.Entity</Target>
</RelationshipType>

<Discovery ID="Microsoft.Windows.InternetInformationServices.InstanceGroupDiscovery.Rule" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.InstanceGroup" ConfirmDelivery="false" Remotable="true" Priority="Normal">
  <Category>Discovery</Category>
  <DiscoveryTypes>
    <DiscoveryRelationship TypeID="SCIG!Microsoft.SystemCenter.InstanceGroupContainsEntities" />
  </DiscoveryTypes>
  <DataSource ID="DiscoveryDataSource" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
    <RuleId>$MPElement$</RuleId>
    <GroupInstanceId>$Target/Id$</GroupInstanceId>
    <MembershipRules>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Microsoft.Windows.InternetInformationServices.ApplicationComponent"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SCIG!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
      </MembershipRule>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Microsoft.Windows.InternetInformationServices.WebSite"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SCIG!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
      </MembershipRule>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Microsoft.Windows.InternetInformationServices.FTPSite"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SCIG!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
      </MembershipRule>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Microsoft.Windows.InternetInformationServices.ServerRole"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SCIG!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
      </MembershipRule>
    </MembershipRules>
  </DataSource>
</Discovery>

The last section of this sample illustrates a discovery rule that provides an expression that scopes down which monitoring class instances are to be included in the Microsoft.SystemCenter.ComputerGroup group. In this discovery, the only computers to be included in the group are those that host an instance of the Microsoft.SQLServer.2000.DBEngine class type.

<RelationshipType ID="Microsoft.SystemCenter.ComputerGroupContainsComputer" Comment="computer groups contain computers" Accessibility="Public" Abstract="false" Base="System!System.Containment">
  <Source>Microsoft.SystemCenter.ComputerGroup</Source>
  <Target>System!System.Computer</Target>
</RelationshipType>

<Discovery ID="Microsoft.SQLServer.2000.ComputerGroupDiscovery" Target="Microsoft.SQLServer.2000.ComputerGroup" Enabled="true">
  <Category>Discovery</Category>
  <DiscoveryTypes>
    <DiscoveryRelationship TypeID="SC!Microsoft.SystemCenter.ComputerGroupContainsComputer" />
  </DiscoveryTypes>
  <DataSource ID="DS" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
    <RuleId>$MPElement$</RuleId>
    <GroupInstanceId>$Target/Id$</GroupInstanceId>
    <MembershipRules>
      <MembershipRule>
        <MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Computer"]$</MonitoringClass>
        <RelationshipClass>$MPElement[Name="SC!Microsoft.SystemCenter.ComputerGroupContainsComputer"]$</RelationshipClass>
        <Expression>
          <Contains>
            <MonitoringClass>$MPElement[Name="Microsoft.SQLServer.2000.DBEngine"]$</MonitoringClass>
          </Contains>
        </Expression>
      </MembershipRule>
    </MembershipRules>
  </DataSource>
</Discovery>

Information

   

Module Type

DataSourceModuleType

Input Type

None

Output Type

System.Discovery.Data

Implementation

Managed

Library

Microsoft.SystemCenter.Library