エージェントSQL Server起動しようとするとクラッシュする
この記事では、SQL Server インスタンスで複数のジョブを作成するときにエージェント サービスSQL Server発生する問題について説明します。
元の製品バージョン: SQL Server
元の KB 番号: 2795690
現象
SQL Server エージェントを起動しようとするとクラッシュするか、起動に予想以上に時間がかかります。 さらに、次のシナリオの 1 つ以上が発生する可能性があります。
シナリオ 1: 次のエラー メッセージがシステム イベント ログに記録されます。
サービスは、開始要求または制御要求にタイムリーに応答しませんでした。
シナリオ 2: エージェントの状態がコントロール パネルで "開始中" と表示され、次のエラー メッセージがSQLAgent.log ファイルに記録されます。
アイドル状態の CPU 条件が定義されていない - OnIdle ジョブ のスケジュールは影響しません。
さらに、次のエントリが SQLAgent.log ファイルに記録される場合があります。
<Time Stamp> - ? [431] Populating subsystems cache... \ <Time Stamp> - ? [432] There are 7 subsystems in the subsystems cache \ <Time Stamp> - ? [124] Subsystem 'ActiveScripting' successfully loaded (maximum concurrency: 40)\ <Time Stamp> - ? [124] Subsystem 'ANALYSISCOMMAND' successfully loaded (maximum concurrency: 400)\ <Time Stamp> - ? [124] Subsystem 'ANALYSISQUERY' successfully loaded (maximum concurrency: 400)\ <Time Stamp> - ? [124] Subsystem 'CmdExec' successfully loaded (maximum concurrency: 40)\ <Time Stamp> - ? [124] Subsystem 'PowerShell' successfully loaded (maximum concurrency: 2)\ <Time Stamp> - ? [124] Subsystem 'SSIS' successfully loaded (maximum concurrency: 400)\ <Time Stamp> - ? [124] Subsystem 'TSQL' successfully loaded (maximum concurrency: 80)\ <Time Stamp> - ! [364] The Messenger service has not been started - NetSend notifications will not be sent\ <Time Stamp> - ? [129] SQLSERVERAGENT starting under Windows NT service control\ <Time Stamp> - + [396] An idle CPU condition has not been defined - OnIdle job schedules will have no effect\ <Time Stamp> - ? [110] Starting SQLServerAgent Monitor using '' as the notification recipient...\ <Time Stamp> - ? [146] Request servicer engine started\ <Time Stamp> - ? [133] Support engine started\ <Time Stamp> - ? [167] Populating job cache...\ <Time Stamp> - ? [131] SQLSERVERAGENT service stopping due to a stop request from a user, process, or the OS...\ <Time Stamp> - ? [134] Support engine stopped\ <Time Stamp> - ? [197] Alert engine stopped\ <Time Stamp> - ? [168] There are 4731 job(s) [0 disabled] in the job cache\ <Time Stamp> - ? [170] Populating alert cache...\ <Time Stamp> - ? [171] There are 0 alert(s) in the alert cache\ <Time Stamp> - ? [149] Request servicer engine stopped\ <Time Stamp> - ? [248] Saving NextRunDate/Times for all updated job schedules...\ <Time Stamp> - ? [249] 0 job schedule(s) saved\ <Time Stamp> - ? [127] Waiting for subsystems to finish...\ <Time Stamp> - ? [128] Subsystem 'ActiveScripting' stopped (exit code 1)\ <Time Stamp> - ? [128] Subsystem 'ANALYSISCOMMAND' stopped (exit code 1)\ <Time Stamp> - ? [128] Subsystem 'ANALYSISQUERY' stopped (exit code 1)\ <Time Stamp> - ? [128] Subsystem 'CmdExec' stopped (exit code 1)\ <Time Stamp> - ? [128] Subsystem 'PowerShell' stopped (exit code 1)\ <Time Stamp> - ? [128] Subsystem 'SSIS' stopped (exit code 1)\ <Time Stamp> - ? [175] Job scheduler engine stopped\
シナリオ 3: データベース エンジン サーバーは、"SQLAgent - Generic Refresher" サービスのSQL Server プロセス ID (SPID) を表示します。 さらに、次のジョブは SPID の入力バッファーで実行中として表示されます。
EXECUTE msdb.dbo.sp_sqlagent_refresh_job
注:
SPID は RUNNABLE 状態で、待機の種類を定期的に待機 PREEMPTIVE_OS_LOOKUPACCOUNTSID
するか、SPID が待機の種類の待機状態 ASYNC_NETWORK_IO
にあります。
原因
この問題は、SQL Serverに複数のジョブ エントリがあるために発生します。
注:
この問題は、Reporting Services Configuration Managerでレポートに対して意図せずに複数のサブスクリプションを設定した場合にも発生する可能性があります。
回避策
この問題を回避するには、不要なジョブを削除します。
注:
意図せずに多数のサブスクリプションを設定したために多数のジョブ エントリがある場合は、Reporting Services Configuration Managerを使用して不要なサブスクリプションを削除します。
詳細
- ジョブを削除する方法の詳細については、「 1 つ以上のジョブを削除する」を参照してください。
- レポート サービスのサブスクリプションの管理の詳細については、「 ネイティブ モード レポート サーバーのサブスクリプションの作成と管理」を参照してください。
- さまざまな待機の種類の詳細については、「待機の種類SQL Server」を参照してください。