none
クロールに問題が発生した時のサービス・プロセス停止方法 RRS feed

  • 質問

  • SharePoint Server 2007を使用しています
    LotusNotesクロール実施中にクロールが途中停止してしまう問題が発生しています。
    そのためクロールを監視するプログラムを作成して、クロールに問題が発生した時
    クロールの停止、サービス再起動をプログラムしようと思ってます。

    手動で実施している作業は以下の通りです。
    1.Windows SharePoint Services Search停止する。  (すぐに停止します)
    2.Office SharePoint Server Searchを停止する。  (停止処理中が続きエラーがでる)
    3.残っているプロセス「mssdmn、mssearch」をkillする
    4.上記、1と2を実施して再起動する。

    これをプログラムで対応した場合、上記2の場所で
    Office SharePoint Server Searchが停止中のままになってしまいます。
    (タイムアウトの処理を入れればいいのでしょうが。まだ実施していません)
    その後、mssearchのプロセスとmssdmnプロセスを停止すれば、
    Office SharePoint Server Searchが停止します。

    どういった順序で停止するのがベストなのでしょうか?他にも確実に停止させる方法があればアドバイス頂けますか?

            staticvoid Main(string[] args)
            {
                StopSPS();
            }

            privatestatic void StopSPS()
            {
                StopService("Windows SharePoint Services Search");
                StopService("Office SharePoint Server Search");

                string[] pros = { "mssdmn", "mssearch", "nnotesmm" };
                foreach (string pro in pros)
                {
                    System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName(pro);
                   foreach (System.Diagnostics.Process p in ps)
                    {
                        Console.WriteLine(string.Format("{0} : {1}", p.ProcessName,p.StartTime));
                       //Console.ReadKey();

                       //プロセスを強制終了
                        p.Kill();
                       //プロセスが停止するまで待機する
                        p.WaitForExit();
                    }
                }
            }

            privatestatic void StopService(string service)
            {
                System.ServiceProcess.ServiceController sc =new System.ServiceProcess.ServiceController(service);

                if (sc.CanStop)
                   //サービスを停止する
                    sc.Stop();
                //サービスが停止するまで待機する
                sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
            }

    2010年4月16日 21:29

回答

  • LotusNotesクロールにノウハウが無いので詳しくはわかりませんが、、、

    Notesクロールは、ノーツクライアント経由で実施してたと思うので、強制終了を考えるのであれば、ノーツクライアントも一緒に考える必要があると思います。
    未確認ですが、、何かしらのプロセスが思うので、、、

    あと、「Windows SharePoint Services Search」はNotesのクロールに無関係なので再起動は不要に思います。

    +どの文書でエラーになって停止しているかの追及は必要に思います。
      いつまでもクロールされない文書が残る可能性があるためです。

    • 回答の候補に設定 山本春海 2010年4月28日 9:27
    • 回答としてマーク 山本春海 2010年5月12日 7:35
    2010年4月20日 4:44
  • こんばんは

    Windows SharePoint Services Searchはヘルプの検索に使っていたと記憶してます。
    その為、Notesのクロールとは無関係です。

    余談ですが、SharePoint2010は64Bit対応のクローラーになるので処理能力は大幅に改善していると思います。検証してみるとよいかもしれません。

     

     

     

     

    • 回答としてマーク 山本春海 2010年5月12日 7:35
    2010年5月11日 14:13

すべての返信

  • LotusNotesクロールにノウハウが無いので詳しくはわかりませんが、、、

    Notesクロールは、ノーツクライアント経由で実施してたと思うので、強制終了を考えるのであれば、ノーツクライアントも一緒に考える必要があると思います。
    未確認ですが、、何かしらのプロセスが思うので、、、

    あと、「Windows SharePoint Services Search」はNotesのクロールに無関係なので再起動は不要に思います。

    +どの文書でエラーになって停止しているかの追及は必要に思います。
      いつまでもクロールされない文書が残る可能性があるためです。

    • 回答の候補に設定 山本春海 2010年4月28日 9:27
    • 回答としてマーク 山本春海 2010年5月12日 7:35
    2010年4月20日 4:44
  • yama chanさんありがとうございます。

    Windows SharePoint Services Searchの停止はMOSSでは全く使ってないのでしょうか?

    そのようにSIから聞いていたのですが、念のため落とした方がいいのかなと思っておりました。

    Notesのクロールで失敗する箇所は特定の文書というわけではなさそうです。

    50個ほどDBがあり、その中でも3万文書程あるノーツのデータベースでよくエラーで停止しているようです。

    あとNotesのクロールは複数データベースの同時クロールでも高確率で失敗します。おの問題で日々頭を悩まされてます。。

     

    2010年4月20日 21:02
  • こんばんは

    Windows SharePoint Services Searchはヘルプの検索に使っていたと記憶してます。
    その為、Notesのクロールとは無関係です。

    余談ですが、SharePoint2010は64Bit対応のクローラーになるので処理能力は大幅に改善していると思います。検証してみるとよいかもしれません。

     

     

     

     

    • 回答としてマーク 山本春海 2010年5月12日 7:35
    2010年5月11日 14:13