﻿<ManagementPack xsi:noNamespaceSchemaLocation="c:\enlistments\momv3.main\private\product\sdk\server\MPInfrastructure\schema\ManagementPackSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
  <Manifest>
    <Identity>
      <ID>Demo.OleDB.MP</ID>
      <Version>1.0.0.0</Version>
    </Identity>
    <Name>Demo MP for Monitoring Ole-DB Messages</Name>
    <References>
      <Reference Alias="System">
        <ID>System.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>9396306c2be7fcc4</PublicKeyToken>
      </Reference>
      <Reference Alias="Windows">
        <ID>Microsoft.Windows.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>9396306c2be7fcc4</PublicKeyToken>
      </Reference>
    </References>
  </Manifest>
  <TypeDefinitions>
    <SecureReferences>
      <SecureReference ID="Demo.OleDB.ActionAccount" Accessibility="Public" Context="System!System.Entity" />
    </SecureReferences>
    <ModuleTypes>
      <ProbeActionModuleType ID="OleDbProbeAction" Accessibility="Public" RunAs="Demo.OleDB.ActionAccount">
        <Configuration>
          <xsd:element name="ConnectionString" type="xsd:string"/>
          <xsd:element name="Query" type="xsd:string" />
        </Configuration>
        <OverrideableParameters>
          <OverrideableParameter ID="ConnectionString" ParameterType="string" Selector="$Config/ConnectionString$" />
          <OverrideableParameter ID="Query" ParameterType="string" Selector="$Config/Query$" />
        </OverrideableParameters>
        <ModuleImplementation>
          <Composite>
            <MemberModules>
              <ProbeAction ID="OleDBPA" TypeID="System!System.OleDbProbe">
                <ConnectionString>$Config/ConnectionString$</ConnectionString>
                <Query>$Config/Query$</Query>
                <GetValue>true</GetValue>
                <OneRowPerItem>false</OneRowPerItem>
              </ProbeAction>
            </MemberModules>
            <Composition>
              <Node ID="OleDBPA" />
            </Composition>
          </Composite>
        </ModuleImplementation>
        <OutputType>System!System.OleDbData</OutputType>
        <InputType>System!System.BaseData</InputType>
      </ProbeActionModuleType>
    </ModuleTypes>
  </TypeDefinitions>
  <Monitoring>
    <Tasks>
      <Task ID="Demo.OleDB.QueryTask" Target="Windows!Microsoft.Windows.Computer" Timeout="0" Accessibility="Public" Enabled="true">
        <Category>Custom</Category>
        <ProbeAction ID="Query" TypeID="OleDbProbeAction">
          <ConnectionString>Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;</ConnectionString>
          <Query>SELECT COUNT(*) FROM SYSCOLUMNS</Query>
        </ProbeAction>
      </Task>
    </Tasks>
  </Monitoring>
  <LanguagePacks>
    <LanguagePack ID="ENU" IsDefault="true">
      <DisplayStrings>
        <DisplayString ElementID="Demo.OleDB.MP">
          <Name>OleDB Demo MP</Name>
          <Description>OleDB DEMO MP: This Management Pack contains rules that generates alerts when certain thresholds aren't met.</Description>
        </DisplayString>
        <DisplayString ElementID="Demo.OleDB.ActionAccount">
          <Name>Demo Action Account</Name>
          <Description>This is an account used in Demo Ole DB MP for credentials needed to connect to DB.</Description>
        </DisplayString>
        <DisplayString ElementID="Demo.OleDB.QueryTask">
          <Name>Execute a query against a DB</Name>
          <Description>This task helps execute a query against specified DB.</Description>
        </DisplayString>
      </DisplayStrings>
    </LanguagePack>
  </LanguagePacks>
</ManagementPack>

