サブスクリプションに対するレプリケーション マージ エージェントの状態

Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState (UnitMonitor)

このモニターは、サブスクリプションのレプリケーション マージ エージェント サービスの状態を確認します。SQL Server エージェント Windows サービスはどのエディションの SQL Server Express でもサポートされていないことにご注意ください。したがって、SQL Server Express の場合にはこのモニターを適用できません。

Knowledge Base article:

概要

レプリケーション マージ エージェントは、データベース テーブルに保持されている最初のスナップショットをサブスクライバーに適用する実行可能ファイルです。最初のスナップショットの作成後、パブリッシャーで発生したデータの追加変更もマージします。エージェントは構成済みのルールを使用して競合を調整するか、カスタム競合回避モジュールを使用します。SQL Server エージェント Windows サービスはどのエディションの SQL Server Express でもサポートされていないことにご注意ください。したがって、SQL Server Express の場合にはこのモニターを適用できません。

原因

マージ エージェントは、次の理由で失敗する場合があります。

解決方法

この問題は、以下を確認することで解決できます。:

追加

ディストリビューション データベース上の msmerge_agents テーブルと msmerge_history テーブルをクエリして、エージェントの失敗に関する詳細を取得します。Msrepl_errors テーブルには、エージェントのすべての障害に関する情報も含まれています。

外部

デスクトップ ヒープの問題

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

レプリケーション マージ エージェント

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

上書き可能なパラメーター

名前

説明

既定値

アラートの優先順位

アラートの優先度を定義します。

標準

アラートの重大度

アラートの重要度を定義します。

エラー

有効

ワークフローを有効または無効にします。

はい

推定ジョブ期間

ジョブ スケジュールの遵守状況の検査に使用するしきい値

15

アラートを生成する

ワークフローがアラートを生成するかどうかを定義します。

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

300

不明な状態のジョブを表示

不明な状態のジョブを含めて、出力とアラートのコンテキストを監視します。正常性に影響します。

いいえ

同期時刻

同期時刻

 

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

200

データベース接続のタイムアウト (秒)

指定された期間中にデータベースにアクセスできない場合、ワークフローは失敗し、イベントが登録されます。

15

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Subscription
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL on Windows レプリケーション: サブスクリプションのマージ エージェントにエラーがあります。
{0}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscription" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState.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>
<MachineName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Merge$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$$Target/Host/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscriber']/ConnectionString$$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/SubscriptionName$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>false</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>