SPS 2003 または WSS 2.0 で修正プログラム適用後にサービスが起動しない

こんにちは。SharePoint サポートチームの tatsuyan です。

今回は、SharePoint Portal Server 2003 (SPS 2003) または Windows SharePoint Services 2.0 (WSS 2.0) の修正プログラム適用時の注意点についてご案内いたします。

近日、本現象に関するお問い合わせを数件いただいたいております。可能な限り早急な情報公開をしたいと思い、今回、我ら SharePoint チームブログにて早急に公開することになりました。

なお、本現象はサーバーのパフォーマンス等、環境に依存する場合もあるため発生頻度は低い問題ですが、今後の SPS 2003 または WSS 2.0 運用の情報としてお役立ていただければと思い、記載させていただきます。

今回ご案内する現象

SPS 2003 または WSS 2.0 の修正プログラムを適用後にサーバーの再起動を実施すると、SPS 2003 または WSS 2.0 の関連サービスである "SharePoint Portal Administration" および "Microsoft SharePointPS Search" サービスが開始されなくなってしまう現象が発生する場合があります。

本現象が発生した場合、ポータルサイト閲覧は可能ですが、サイトからの検索ができなくなる現象が発生します。なお、サービスが起動できなくなった場合には、以下のイベントログが SPS 2003 または WSS 2.0 がインストールされたサーバーに記録されます。

--- イベントエラー 7009 ---

イベントの種類: エラー

イベント ソース: Service Control Manager

イベント カテゴリ: なし

イベント ID: 7009

説明:

Windows SharePoint Services Administration サービスへの接続中にタイムアウト (30000 ミリ秒) になりました。

--- ここまで ---

--- イベントエラー 7000 ---

イベントの種類: エラー

イベント ソース: Service Control Manager

イベント カテゴリ: なし

イベント ID: 7000

説明:

Windows SharePoint Services Administration サービスは次のエラーのため開始できませんでした:

そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。

--- ここまで ---

本現象が発生する原因

前述のイベント ID は、サービス プロセスの管理およびサービス プロセスの起動や終了を制御する Service Control Manager が該当のサービスを起動させようとした際のタイムアウト値 (既定では 30000 ミリ秒) を超えた場合に記録されるイベントとなります。前述のイベント ID が記録される要因として、修正プログラムの適用により、SharePoint のモジュール (dll や exe など) が更新されるとともに、内部のスキーマの更新や整合性を保つための処理が行われます。本現象は Service Pack や修正プログラムなど適用後の初回起動時に、通常の再起動時とは異なり、サービスの開始に時間を要しているために発生します。

OS (Windows Server 2003) で設定されている 30 秒という時間は、製品出荷時に様々な状況、パフォーマンスなどを加味して、検証し設定した値となります。

そのため 30 秒で毎回必ずサービスが起動するという動作を保証する時間ではございません。30 秒でサービスが起動することができない場合には、環境にあわせて起動時間を調整する必要があります。

本現象の回避策について

本現象が発生した場合は、すべての SPS 2003 または WSS 2.0 がインストールされたサーバーにおいて、レジストリに変更を加え、Service Control Manager の既定のタイムアウト値を変更いただき、サービス起動までの時間を伸ばしていただくことで本現象が回避されます。

操作内容

1. [Start] - [Run] をクリックします。

2. 名前に "regedit" と入力し、レジストリ エディタを起動します。

3. 下記のパスのキーをアクティブにし、値を追加します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control を右クリックし、[NEW] - [DWORD Value] をクリックします。

4. 新しく作成された値を下記のように設定します。

Name : ServicesPipeTimeout

例:60秒に設定する場合(Decimal の場合はミリ秒で設定)

   Value data : 60000 (Decimal)

5. サーバーを再起動します。

参考情報

Event ID 7000 が発生したときの一般的な対象方法につきましては、以下のサポート技術情報でも公開がされております。ご参考にしていただけますと幸いです。

文書番号 : 922918

タイトル : Windows Server 2003 でサービスが開始されずイベント 7000 および 7011 が記録される

アドレス : https://support.microsoft.com/kb/922918

あとがき

今回ご案内した現象は SPS 2003 また WSS 2.0 にかかわらず、タイミングによって一般的なアプリケーションでも発生する可能性があります。その際は本記事の内容を参考にしていただき、適宜 Service Control Manager のタイムアウト値を伸ばしていただければ幸いです。