- PR -

tomcatのスレッドについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/11/23
投稿数: 3
投稿日時: 2006-11-23 09:23
はじめまして。taptashと申します。

Tomcatのスレッドについて質問させてください。

現在、ApacheからのリクエストをTomcatに投げ、サーブレットへ渡す
システムを構築しております。渡されたリクエストは、サーブレットが
ラップしているCGIへ渡され処理されます。
ここで、CGIへ渡すプロセス中にエラーが起き、そのままTomcatのスレッド
が残ってしまうという問題が発生しております。

スレッドが残っているので、プロセスをkillしてもCPUは回復しません。
Tomcatの設定か何かで、ある一定時間存在しているスレッドは開放する
等という対処法はないのでしょうか?

その他、何かありましたらご教授ください。

よろしくお願い致します。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-11-23 17:59
引用:

未記入さんの書き込み (2006-11-23 09:23) より:
スレッドが残っているので、プロセスをkillしてもCPUは回復しません。
Tomcatの設定か何かで、ある一定時間存在しているスレッドは開放する
等という対処法はないのでしょうか?



プロセスをkillって、CGIのプロセスをkillするって意味ですか?
CPUの回復って何でしょう?ビジーループで使用率が上がっているのですか?

Thread#stop()による強制停止は基本的に厳禁ですし、
interrupt()を受け付けられる状態でない場合は停止できません。

OS側のスレッド強制停止(Win32のTerminateThread等)の場合は、
停止自体は行えますが、Thread#stop()の場合よりさらに危険です。

その辺りの理由から、スレッド強制停止の機能はありません。

CGIの起動(と終了監視?)を行っている箇所を修正するか、
Tomcatのプロセス全体を止めるかのどちらかでしょう。

Unix系のOSで、killしてもTomcatが停止しないのであれば、
SIGTERMではなくSIGKILLを送れば普通は死にます。
1

スキルアップ/キャリアアップ(JOB@IT)