散發者的複寫合併代理程式狀態 (為所有訂閱彙總)

Microsoft.SQLServer.2012.Replication.Monitor.MergeAgentState (UnitMonitor)

此監視器會針對散發者上的所有訂閱,檢查合併代理程式的狀態。

Knowledge Base article:

摘要

複寫合併代理程式是公用程式可執行檔,可將資料庫資料表中保存的初始快照集套用至訂閱者。此代理程式也會合併初始快照集建立之後,在發行者上發生的增量資料變更,並根據您設定的規則或使用您建立的自訂解析程式來調解衝突。

原因

合併代理程式可能會因為下列任何原因而失敗:

解決方式

這個問題可透過確定下列事項來解決:

其他

查詢散發資料庫上的 msmerge_agents 和 msmerge_history 資料表,以取得代理程式失敗的詳細資訊。Msrepl_errors 資料表也有包含代理程式失敗的相關資訊。

外部

桌面堆積問題

http://support.microsoft.com/kb/949296

複寫合併代理程式

http://msdn.microsoft.com/library/ms147839.aspx

可覆寫的參數

名稱

描述

預設值

警示優先程式

定義警示優先順序。

一般

警示嚴重性

定義警示嚴重性。

錯誤

已啟用

啟用或停用該工作流程。

估計的作業持續時間

用於檢查作業排程相容性的臨界值

15

產生警示

定義工作流程是否會產生警示。

間隔 (秒)

執行工作流程的週期性時間間隔 (秒)。

300

顯示具未知狀態的作業

將狀態未知的作業加入監視器輸出與警示內容中。這會影響健全狀況。

同步處理時間

同步處理時間

 

逾時 (秒)

指定允許工作流程在關閉且標示為失敗之前執行的時間。

300

資料庫連線的逾時 (秒)

若工作流程無法在指定的期限之內存取資料庫,將會失敗並登錄一則事件。

15

Element properties:

TargetMicrosoft.SQLServer.2012.Replication.Distributor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.Replication.MonitorType.ReplicationAgentState
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL2012 複寫: 合併式複寫代理程式在散發者上發生錯誤。
{0}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.MergeAgentState" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2012.Replication.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Replication.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Replication.Monitor.MergeAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<XPathName>Merge$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>