MSSQL on Windows Replication: Distributor Discovery

Microsoft.SQLServer.Replication.Windows.Discovery.Distributor (Discovery)

The object discovery discovers all Distributors of an instance of Microsoft SQL Server on Windows.

Knowledge Base article:

Summary

The Distributor is a database instance that acts as a store for replication specific data associated with one or more Publishers. Each Publisher is associated with a single database (known as a Distribution database) at the Distributor. The Distribution database stores replication status data, metadata about the Publication, and in some cases acts as a queue for data moving from the Publisher to the Subscribers. In many cases, a single database server instance acts as both the Publisher and the Distributor. This is known as a local Distributor. When the Publisher and the Distributor are configured on separate database server instances, the Distributor is known as a remote Distributor.

External

Replication Publishing Model Overview

Overrideable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Interval (seconds)

The recurring interval of time in seconds in which to run the workflow.

14400

Synchronization Time

The synchronization time specified by using a 24-hour format. May be omitted.

 

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

300

Timeout for database connection (seconds)

The workflow will fail and register an event if it cannot access the database during the specified period.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.DBEngine
EnabledTrue
Frequency14400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
Discovered relationships and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.Replication.Windows.DataSource.DistributorDiscovery Microsoft.SQLServer.Core.RunAs.Discovery

Source Code:

<Discovery ID="Microsoft.SQLServer.Replication.Windows.Discovery.Distributor" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.SQLServer.Replication.Windows.Distributor"/>
<DiscoveryRelationship TypeID="Microsoft.SQLServer.Replication.Windows.Discovery.DistributorRefersSystemDatabase"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.Replication.Windows.DataSource.DistributorDiscovery" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Discovery">
<MachineName>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<ServiceName>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ServiceName$</ServiceName>
<AgentServiceName>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/AgentName$</AgentServiceName>
<PerformanceCounterObject>$Target/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/PerformanceCounterObject$</PerformanceCounterObject>
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ClassId>$MPElement[Name='Microsoft.SQLServer.Replication.Windows.Distributor']$</ClassId>
<InstanceClassId>$MPElement[Name='SqlDiscW!Microsoft.SQLServer.Windows.DBEngine']$</InstanceClassId>
<DistributorRefersDataBaseRelationId>$MPElement[Name='Microsoft.SQLServer.Replication.Windows.Discovery.DistributorRefersSystemDatabase']$</DistributorRefersDataBaseRelationId>
<DataBaseClassId>$MPElement[Name='SqlDiscW!Microsoft.SQLServer.Windows.Database']$</DataBaseClassId>
<DistributorInstanceGroupClassId>$MPElement[Name='MSRL!Microsoft.SQLServer.Replication.Core.DistributorInstanceGroup']$</DistributorInstanceGroupClassId>
<DistributorInstanceGroupContainsInstanceRelationId>$MPElement[Name='MSRL!Microsoft.SQLServer.Replication.Core.DistributorInstanceGroupContainsInstance']$</DistributorInstanceGroupContainsInstanceRelationId>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>