Availability of the Distribution database from a Subscriber.

Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber (UnitMonitor)

This monitor checks availability of the Distribution database from the Subscriber.

Knowledge Base article:

Summary

The subscriber is not able to reach its distribution database.

Causes

This situation may be caused by:

Resolutions

Verify the following conditions:

Additional

If there is a firewall in your replication topology you may want to read the following article: http://support.microsoft.com/kb/164667/

To add LocalAccountTokenFilterPolicy key execute following:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

Overrideable Parameters

Name

Description

Default Value

CredSsp Enabled

Indicates that CredSsp is enabled prior to running this workflow. Will leave it enabled after the run

Yes

Database Names

List of names for databases that should be checked, delimited by ',' symbol

 

Enabled

Enables or disables the workflow

No

Generates Alerts

Defines whether the workflow generates an Alert

Yes

Interval (seconds)

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

300

Port

Port of wsman service

5985

Prefix

Name of the wsman service

wsman

Subscriber Names

List of names of subscribers that should be used as a check source, delimited by '|' symbol

 

Synchronization Time

Synchronization Time

 

Transport

Prefix of the protocol to access the wsman service

http

Element properties:

TargetMicrosoft.SQLServer.2008.Replication.Distributor
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL2008 Replication: The Distribution Database is not available from the Subscriber.
The Distribution Database is not available from the Subscribers ({0})
{1}
RunAsMicrosoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber" Accessibility="Public" Enabled="false" Target="MS2RD!Microsoft.SQLServer.2008.Replication.Distributor" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Subscriber']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='Message']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Health" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Distributor>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</Distributor>
<Subscriber/>
<Domain>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Domain$</Domain>
<User>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/UserName$</User>
<Pass>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Password$</Pass>
<Transport>http</Transport>
<Prefix>wsman</Prefix>
<Port>5985</Port>
<DatabaseNames/>
<CredSspEnabled>true</CredSspEnabled>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>