- - PR -
Starting background thread の果てに
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-03-13 23:14
W2KSP3で、IIS5.0(ispi_redirector.dll)、Tomcat4.0.3+JDK1.3.1_02、
Oracle9iR1 のサイト構築で初めて Java を使いました、あおきと申します。 稼働開始から1年半、ある日突然、VM が No processor available に なるようになってしまって困っています。 現象発生までの経緯は、catalina_log の中に Ajp13Processor[8080][0] Starting background thread Ajp13Processor[8080][1] Starting background thread と記録されていき、時間とともに [0]、[1]・・・・[99] と出現します。 Ajp13Processor[8080][99] Starting background thread と [99]が記録された時点で、同じく catalina_log に Ajp13Connector[8080] No processor available, rejecting this connection と記録され、以降すべてのアクセスが http-status=500 になってしまいます。 server.xml の中では <Connector className="org.apache.ajp.tomcat4.Ajp13Connector" port="8080" minProcessors="5" maxProcessors="100" acceptCount="10" debug="0"/> と maxProcessors を 100 にしていますので、Tomcat 起動後から Starting background thread の 100個目が記録されると No processor available になるんだろうとは思うのですが。 Log4j が吐き出しているログと見比べてみると、[nn]の部分が その日初めて現れる番号の前に、Starting background thread で その番号が出てきています。 それ以降もその [nn] は何度か出現するものの、GC 発生以降は 出てこない [nn] もあります。 つまり、今の時点では、なんらかの理由により GC 発生時に 100個設定していた processor のうち、いくつかが使えなくなり、 次々に processor が起動(?)するうちについに maxProcessor に 到達し、No processor available になるのでは、と思っています。 んなバカなと思っていろいろ調べてみましたが、GC と Processor の 関係に関してはこれと思われるものを見つけられませんでした。 コードやコンテンツやデータを変えたということもなく、またアクセスが 急激に増えたということもありません。 気になるのは set-cookie で jsessionid に含まれる「Path=/」などの 文字列を除くコードを入れていなかったので、最近 cookie名が reserved ですよ、というエラーを拾うことが、以前よりは多くなったことでしょうか。 どなたかお知恵拝借願えませんでしょうか? よろしくお願いします。 |
|
投稿日時: 2004-03-14 01:59
通常スレッドを100コも使い果たすことはありませんので、どこかでスタックすているものと思われます。
スレッドダンプを取得して何が起きているか確認してみましょう。 |
1
