This monitor checks availability of the Distribution database from the Subscriber.
The subscriber is not able to reach its distribution database.
This situation may be caused by:
A connectivity issue between the Distributor and the Subscriber.
Insufficient permissions for the Replication Distribution Agent or Merge Agent account to access the Distribution database.
Cannot configure CredSSP
Verify the following conditions:
Ensure the network access between the Distributor and the Subscriber is correctly configured.
Ensure any firewalls between the Distributor and Subscriber are configured to allow access on the ports used by Microsoft SQL Server.
Ensure that the Windows Remote Management (WS-Management) service running on the Subscriber.
Ensure firewall exceptions configured to allow connections for Windows Remote Management through HTTP-In.
Ensure the Replication Agent’s account is configured correctly to access both the Distributor and the Subscriber.
Ensure the Distribution Agent and Merge Agent accounts are added to the db_owner fixed role on the Distribution and the Subscriber databases.
Ensure the monitoring account is in Local Administrators group on Distributor and on Subscribers.
Ensure that following registry key presents on Distributor and Subscribers: "LocalAccountTokenFilterPolicy"=dword:00000001 in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
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
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 |
Target | Microsoft.SQLServer.2008.Replication.Distributor | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor |
<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>