System.OleDbProbe

 

Applies To: Operations Manager 2007 R2

The System.OleDbProbe probe action module type is used to perform asynchronous queries against a database that supports OLE DB. This module returns the results as System.OleDbData data type.

Usage

Use this module to receive OLE DB data within a workflow such as a rule or monitor.

Type Definition

  
<ProbeActionModuleType ID="System.OleDbProbe" Accessibility="Public" PassThrough="false" Batching="false">  
  <Configuration>  
    <xsd:element name="ConnectionString" type="xsd:string"/>  
    <xsd:element name="Query" type="xsd:string" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="GetValue" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="IncludeOriginalItem" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="OneRowPerItem" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="DatabaseNameRegLocation" type="xsd:string" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="DatabaseServerNameRegLocation" type="xsd:string" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="QueryTimeout" type="xsd:integer" minOccurs="0" maxOccurs="1"/>  
    <xsd:element name="GetFetchTime" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>  
  </Configuration>  
  <ModuleImplementation Isolation="Any">  
    <Native>  
      <ClassID>B5A35748-86F5-46A3-9BC2-F9A494E36B25</ClassID>  
    </Native>  
  </ModuleImplementation>  
  <OutputType>System.OleDbData</OutputType>  
  <InputType>System.BaseData</InputType>  
</ProbeActionModuleType>  

Parameters

The System.OleDbProbe module supports the configuration parameters described in the following table.

Parameter Type Description
ConnectionString String Required parameter. Defines the connection string to the OLE DB database. On systems running Windows 2003 or later, the module encrypts the ConnectionString value.
Query String Required parameter. Defines the query to run against the OLE DB database.
GetValue Boolean Optional parameter. Determines whether or not the module will return the results of the query.
IncludeOriginalItem Boolean Optional parameter. Determines whether or not the item that triggered the module should be included in the result set.
OneRowPerItem Boolean Optional parameter. Determines whether or not the module should return a single data item per row of data. When set to false, all rows are returned as part of a single data item.
DatabaseNameRegLocation String Optional parameter. Represents a registry key where the name of the database can be found. The registry key must be found under the HKLM registry hive. For example, a valid value could be something like SOFTWARE\Company\Product\1.0\DatabaseName.
DatabaseServerNameRegLocation String Optional parameter. Represents a registry key where the name of the database server can be found. The registry key must be found under the HKLM registry hive. For example, a valid value could be something like SOFTWARE\Company\Product\1.0\ServerName.
QueryTimeout Integer R2 specific. Optional parameter. Represents the query time-out.
GetFetchTime Boolean R2 specific. Optional parameter. Defines whether or not to return the duration of fetching the result set.

Remarks

This module does not support blob data access. Any column that contains blob data will return as an empty value.

If you set GetValue to true to return the data from the query, certain datatypes such as decimal and datetime may not return expected data. A workaround is to use the CONVERT function in the Query to convert the data to another type such as varchar.

Composition

The System.OleDbProbe module is a native module.

To access the specified OLE DB database, the System.OleDbProbe module implements an OLE DB template. For information about these templates, see OLE DB Templates.

Errors

The errors described in the following table can occur from within the System.OleDbProbe module.

Exception Reason
11851 The module failed to initialize.
11852 Logging failure of result data.
11853 The module failed to get the result data.
11854 The module failed to authenticate to the data source.
11855 Query execution failed due to a time-out.
11856 The module failed to encrypt the connection string.
11857 The module failed to decrypt the connection string.

None.

External Module References

None.

Sample

The following sample XML illustrates how to implement the System.OleDbProbe module in a rule. In this sample, the rule targets a fictional application that stores information about itself in a SQL database. The rule generates an alert for each row whose Status column equals “Error”. Before we can use the OLE DB probe in a rule, we have to define a custom DataSourceModuleType because rules do not directly contain probe action modules.

  
//First, the custom class definition. Discovery of this class is not included.  
<ClassType ID="Microsoft.Samples.MyApplication" Accessibility="Internal" Abstract="false" Base="Windows!Microsoft.Windows.LocalApplication" Hosted="true" Singleton="false" Extension="false" />  
  
//Now we define the data source module type. The module will run the probe action every 3600 seconds.  
<DataSourceModuleType ID="Microsoft.Samples.OleDbGetErrorDS" Accessibility="Internal" Batching="false">  
  <Configuration />  
  <ModuleImplementation Isolation="Any">  
    <Composite>  
      <MemberModules>  
        <DataSource ID="Scheduler" TypeID="System!System.Scheduler">  
          <Scheduler>  
            <SimpleReccuringSchedule>  
              <Interval>3600</Interval>  
              <SyncTime />  
            </SimpleReccuringSchedule>  
            <ExcludeDates />  
          </Scheduler>  
        </DataSource>  
        <ProbeAction ID="OleDb" TypeID="System!System.OleDbProbe">  
          <ConnectionString>Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPy=SSPI"</ConnectionString>  
          <Query>SELECT * WHERE Status='Error'</Query>  
          <OneRowPerItem>true</OneRowPerItem>  
        </ProbeAction>  
      </MemberModules>  
      <Composition>  
        <Node ID="OleDb">  
          <Node ID="Scheduler" />  
        </Node>  
      </Composition>  
    </Composite>  
  </ModuleImplementation>  
  <OutputType>System!System.OleDbData</OutputType>  
</DataSourceModuleType>  
  
  
//Now the actual rule.  
<Rule ID="Microsoft.Samples.OleDbRuleGenerateAlertOnError" Enabled="true" Target="Microsoft.Samples.MyApplication" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">  
  <Category>Custom</Category>  
  <DataSources>  
    <DataSource ID="DS" TypeID="Microsoft.Samples.OleDbGetErrorDS" />  
  </DataSources>  
  <WriteActions>  
    <WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">  
      <Priority>1</Priority>  
      <Severity>1</Severity>  
    </WriteAction>  
  </WriteActions>  
</Rule>  
  

The System.OleDbData data output of the Microsoft.Samples.OleDbGetErrorDS module in the above rule would look something like the following:

  
<DataItem type="System.OleDbData" time="2010-03-10T10:19:00.4146189-08:00" sourceHealthServiceId="88015514-C091-36AE-D102-A0A6AD267C7C">  
  <HRResult>0</HRResult>   
  <ResultLength>8</ResultLength>   
  <Result>Success</Result>   
  <InitializationTime>213</InitializationTime>   
  <OpenTime>0</OpenTime>   
  <ExecutionTime>32</ExecutionTime>   
  <FetchTime>0</FetchTime>   
  <RowLength>1</RowLength>   
   <Columns>  
   <Column VariantType="3">1</Column>   
  </Columns>  
  <OriginalDataLength>0</OriginalDataLength>   
  <ErrorDescriptionLength>0</ErrorDescriptionLength>   
  <ResultCode>0</ResultCode>   
</DataItem>  
  

For information on the meaning of the elements of the System.OleDbData data type, see System.OleDbData.

Information

Module Type ProbeActionModuleType
Input Type System.BaseData
Output Type System.OleDbData
Implementation Native
Library System. Library