- - PR -
"NET STOP"でサービスの停止処理が進まないときがある
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-14 19:19
"Windows Server 2003"に常駐しているサービスを"NET STOP"コマンドで停止
しようとした場合、稀に進捗状況(...)が表示されず処理が進まないという現 象が起こっています。 サーバを再起動すると正しく処理が進むのですが、なぜそうなるのか原因が分 かりません。調べてみたところ、同様な事例もあるようなのですが、「再起動 すれば…」という対策しか記述されていませんでした。 またこのサービスには、依存関係として"OracleOraHome92Agent"、 "OracleOraHome92TNSListener"、"ORACLE.EXE <SID>"を指定しています。 どなたかご存知の方がいらっしゃいましたら、原因、もしくは何かヒントでも 教えて頂けないでしょうか? よろしくお願い致します。 | ||||
|
投稿日時: 2006-02-18 21:24
こんばんは。
Q1.どのようなサービスを停止しようとしているのでしょうか?(市販品?) Q2.停止しようとして停止が進行しないサービスはわかりますか?(停止対象?それとも、依存サービスのどれか?) # 以前、NA8Cでした。 ![]() | ||||
|
投稿日時: 2006-02-21 10:21
なな様、ご返答ありがとうございます。
> Q1.どのようなサービスを停止しようとしているのでしょうか?(市販品?) 停止しようとしているサービスは市販品ではなく、独自に作成したサービス (システム)です。 > Q2.停止しようとして停止が進行しないサービスはわかりますか? > (停止対象?それとも、依存サービスのどれか?) 停止処理が進行しないサービスは、停止対象のサービスです。 と言いますのも、"NET STOP"コマンドは依存関係も停止してくれるということで、 依存関係には停止コマンドを発行しておりません。 また「依存関係が問題ではないか」とも考え、今回の問題が発生した環境("Windows Server 2003") と同じ環境でサービス停止のテストを行っているのですが、再現性が無いため 今のところ原因不明の状態です。 まだまだ至らない点があると思いますが、よろしくお願い致します。 > # 以前、NA8Cでした やはり分かる方には分かってしまうのですね(笑) | ||||
|
投稿日時: 2006-02-22 08:30
何度もスミマセン。
Q1.独自に作成したサービスですが、何で作っていますか?(.NET?) Q2.事象が発生したときに、別ウィンドウで依存サービスが停止しているか確認できませんか? (SQL*Plusで接続できるか確認しても良いと思います。) Q3.独自に作成したサービスの停止が進行しないということですが、プログレスバーが進行しないのでしょうか?それとも停止操作のダイアログ自体が全く表示されないのでしょうか? | ||||
|
投稿日時: 2006-02-22 09:52
なな様、ご返答ありがとうございます。
> Q1.独自に作成したサービスですが、何で作っていますか?(.NET?) "Java"で作成しています。 > Q2.事象が発生したときに、別ウィンドウで依存サービスが停止しているか > 確認できませんか? (SQL*Plusで接続できるか確認しても良いと思います。) 今回の事象を発生させるべくサービス停止のテストを行っているのですが、 再現しないため今のところ確認が出来ない状態です。。 > Q3.独自に作成したサービスの停止が進行しないということですが、プログ > レスバーが進行しないのでしょうか?それとも停止操作のダイアログ自体が全 > く表示されないのでしょうか? コマンドラインでNETコマンドを実行しているので停止操作のダイアログは 表示されず、進捗を表す"...."が表示されるハズなのですが、今回の事象では それすら表示されませんでした。 (停止処理はバッチファイルに記述してあり、そのファイルを実行することで サービスの停止を行っています) 現在、サービス停止の検証中ではありますが、再現せず手詰まりな状態です。。 | ||||
|
投稿日時: 2006-02-22 10:24
Pure Java では Windows サービスは作成できないでしょう。Java 用のサービス化ツールを使っているのか。exe 用のサービス化ツールを使っているのか。自前の JNI で RegisterServiceCtrlHandler を使っているのか。情報が足りません。 ・サービス化ツールを使用している場合。ツールが強制終了機能を持っているか確認する。強制終了機能を持っていない場合は、終了していない Java のスレッドが残っていないかどうか確認する。 ・自前で RegisterServiceCtrlHandler を使っている場合。自分の書いたコードを見直す。 |
1