ディストリビューターのレプリケーション キュー リーダー エージェントの状態 (すべてのパブリケーションの集約)

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

このモニターは、ディストリビューターのすべてのパブリケーションについてキュー リーダー エージェント サービスの状態を確認します。注: このモニターは既定では無効になっています。必要に応じて上書きを使用し、モニターを有効にしてください。

Knowledge Base article:

概要

レプリケーション キュー リーダー エージェントは、Microsoft SQL Server キューまたは Microsoft メッセージ キューに格納されているメッセージを読み取り、それらのメッセージをパブリッシャーに適用する実行可能ファイルです。キュー リーダー エージェントは、スナップショットとキュー更新を許可するトランザクション パブリケーションで使用されます。

原因

キュー リーダーは、次のいずれかの理由により失敗する可能性があります:

解決方法

これらの問題は、以下の方法で解決できる可能性があります。:

追加

ディストリビューション データベース上の msqreader_agents テーブルと msqreader_history テーブルをクエリして、エージェントの失敗に関する詳細を取得できます。Msrepl_errors テーブルにもエージェントの失敗に関するログ情報が格納されています。

外部

http://technet.microsoft.com/library/ms147378.aspx

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

名前

説明

既定値

アラートの優先順位

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

標準

アラートの重大度

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

エラー

有効

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

いいえ

推定ジョブ期間

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

15

アラートを生成する

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

はい

間隔 (秒)

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

300

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

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

いいえ

同期時刻

同期時刻

 

タイムアウト (秒)

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

200

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

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

15

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
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.QueueReaderAgentState" Accessibility="Public" Enabled="false" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" 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.QueueReaderAgentState.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/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericDistributor']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Queue reader$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>true</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>