none
sysprocessesのレコードが残ってしまった RRS feed

  • 質問

  • いつもお世話になっております。
    標記の件、質問させてください。

    SQL Serverにアクセスしていないのにも拘らず、sysprocessesのレコードが意図せず残ってしまう現象が発生してしまいました。
    このような事象は報告されているのでしょうか。また、解決策はあるのでしょうか。

    現象発生の詳細を以下に記します。

    <現象発生経緯>
     利用しているアプリケーションを起動すると、SQL Server 2000に接続します。
     このときsysprocessesのレコードが作成されています。
     アプリケーションは二重起動可能で、アプリケーションを終了するとSQL Server 2000との接続が切れ、通常sysprocessesのレコードもなくなります。

     今回の現象はアプリケーションを二重起動し、片方を終了したのですが、sysprocessesが残ったままになっていました。
     「プロセス情報」を参照しても特にブロッキングされている様子もありませんでした。
     もう片方も終了してみましたが、残ったレコードはなくなりませんでした。


    情報が少なく理解しずらいかもしれませんが、よろしくお願いいたします。

    2010年9月24日 6:32

回答

  • どのようなステータスのプロセスが残存していたのでしょうか?また当該SPIDに対し、killコマンドの実施はしたでしょうか?しばらくしても消えない、また残存プロセスがブロッキングなどの何かしらの問題を起こしているのであればkillコマンドが良いかと思います。

    • 回答の候補に設定 山本春海 2010年10月4日 8:50
    • 回答としてマーク tokuno3 2010年10月26日 5:34
    2010年9月24日 13:44
    モデレータ

すべての返信

  • どのようなステータスのプロセスが残存していたのでしょうか?また当該SPIDに対し、killコマンドの実施はしたでしょうか?しばらくしても消えない、また残存プロセスがブロッキングなどの何かしらの問題を起こしているのであればkillコマンドが良いかと思います。

    • 回答の候補に設定 山本春海 2010年10月4日 8:50
    • 回答としてマーク tokuno3 2010年10月26日 5:34
    2010年9月24日 13:44
    モデレータ
  • いつもお世話になっております。
    早速のご返信ありがとうございました。

    ステータスはsleepingでした。アプリケーションを起動した状態ではsleepingになっています。
    また、当該SPIDに対してはアプリケーションを終了した時、SQL Serverとの接続を切るような仕組みにしてありますので、通常ですと(SQL Server側で)自動的にsysprocessesのレコードを削除していたのですが、今回の場合は残ってしまいました。
    復旧の為、プロセスを強制終了(kill?)しましたが、「しばらくしても消えない」ことはあるのでしょうか。
    「しばらくしても消えない」場合、残ったプロセスについて、実際にSQL Serverと接続しているか否かが、sysprocessesの項目では判断つかないため、アプリケーション上その対処(killする対象が特定できず)に困っています。
    やはり無理があるでしょうか。

    「しばらくしても消えない」可能性や原因についても、情報があれば教えていただきたいと思います。

    2010年9月27日 1:04
  • いつもお世話になっております。

    先日お問合せさせていただきましたが、「プロセスがしばらくしても消えない」現象は起こり得るのでしょうか。
    また、起こるとすれば解決策はあるのでしょうか。
    本件の主目的としては、「意図せず残ってしまったプロセスを消したい」のではなく、「意図しないプロセスが残らないようにしたい」と思っています。(9/24にご回答いただいた内容では、申し訳ありませんが解決にならないと思っています)
    しかし、私が「プロセスがしばらくしても消えない」現象について、解決策がないのであれば、断念する(別案を検討する)こともか考えております。

    しばらくご返信をいただいておりませんので、やはり解決策はないのでしょうか。
    お忙しいところ申し訳ありませんが、よろしくお願いいたします。

    2010年10月26日 2:58
  • 解決策にはならないと思いますが、SQL Server インスタンスを再起動すれば、残存プロセスはかならず消えると思います。

    2010年10月26日 4:48
  • いつもお世話になっております。
    早速のご回答ありがとうございました。

    やはり、事後の対応となってしまいますか。
    可能であれば、未然に「プロセスが残ってしまうこと」を防ぎたいのですが、難しそうですね。
    こちらでも、発生当時の再現もできず、また根本原因がわからないため、対応に困っていました。
    皆様のご回答を拝見する限り、事前の対応は難しそうですので、今回の解決は断念することにいたします。
    (本件の回答としては、回答候補となっていたご返信にさせていただきます)

    皆様、お忙しい中ありがとうございました。

    2010年10月26日 5:34