- PR -

Apacheの常時稼動について

投稿者投稿内容
ゆじ
会議室デビュー日: 2002/09/02
投稿数: 8
お住まい・勤務地: 東京都
投稿日時: 2002-09-02 15:35
はじめまして、ゆじと申します。

UNIX初心者の為、変な発言などございましたらご指摘ください。
Linuxサーバーを立ち上げてJavaServletを動かそうと勉強しています。
Apacheとtomcatとインストールし、細かい設定も本とかを参考にしてやっとこ動きました。

動いたのですが、時間が経つとApache(ごめんなさいtomcatの方かもしれません)
が止まってしまいサーバーにアクセスしようとするとタイムアウトの状態になってしまいます。
短いと2時間、長いときでも6時間くらい動かすとダメになります。

Apacheのエラーログには、止まったと思われる時間から
次のようなことがずらっと書かれています。

[Sun Sep 1 04:07:11 2002][warn] child process {プロセス番号} still did not exit,sending SIGTERM
         
このエラーについて何かヒントや情報をいただきたいです。
よろしくお願いします。
MyTime
ベテラン
会議室デビュー日: 2002/01/03
投稿数: 83
投稿日時: 2002-09-03 00:22
せめて、ディストリビューションの種類とApache,tomcat,glibcのバージョンぐらい書きましょう。
pthread問題かな?
ゆじ
会議室デビュー日: 2002/09/02
投稿数: 8
お住まい・勤務地: 東京都
投稿日時: 2002-09-03 08:59
回答ありがとうございます。
確かに、質問があいまいでは答えられませんよね。
申し訳ありません。

ちなみに今の開発環境は
・Redhat Linux 7.3
・Apache-1.3.23
・tomcat-4.0.3
・glibc-2.2.5(これについては特に見ていません。どのような影響があるのでしょうか?)

私はpthreadについて、何も知りませんでした。
これから調べてみようと思います。

あと関係あるのか分かりませんが、tomcatを起動してpsコマンドを打つと
javaプロセスが30個くらい表示されます。
これは正しいのでしょうか?この数が何に依存するのかご存知でしたら教えていただきたいです。

ゆじ
会議室デビュー日: 2002/09/02
投稿数: 8
お住まい・勤務地: 東京都
投稿日時: 2002-09-03 17:01
自己レスです。
glibc,pthread等について調べてみたのですが、いまひとつ把握できず
結局、進捗がありませんでした。せっかくヒントを頂いたのにすみません。

Java Servletにアクセスするとタイムアウトになりますが、サーバー自体には
アクセス出来るので、感覚的にJavaだけが固まっているという感じでしょうか。
Apacheがリクエストを受け取ってtomcatに処理を依頼して、そのまま帰って来ない
という印象です。

固まってしまってからは、Apacheとtomcatの両方を再起動すると直ります。
たまに、両方停止してもプロセスとして残ってしまうことがあり、その場合プロセス
をkillしてから起動しないと動きません。

問題が問題の為に、Apacheの設定をいじってみても結果的に変わったのかが一晩動かして
置かないと分からないのが辛いところです。

もう少し頑張ってみます。失礼します。
gsg
常連さん
会議室デビュー日: 2002/08/09
投稿数: 20
お住まい・勤務地: 東京都
投稿日時: 2002-09-03 17:12
Tomcatのほうはエラーをはいていませんか?
$TOMCAT_HOME/logs/
あたりにいろいろログが出力されているはずなので、その辺のどれかが
有力な情報を書き出しているかもしれません。

私の経験上、同じようなことが起こった際は、JVMがOutOfMemoryErrorを
起こしていたのですが、どうでしょうか。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-09-03 18:17
JVMのバージョンはなんでしょうか?

ひとまずそれぞれをスタンドアローンで使用して、Apacheがだめなのか、Tomcatがだめなのか調べると良いかもしれません。
ゆじ
会議室デビュー日: 2002/09/02
投稿数: 8
お住まい・勤務地: 東京都
投稿日時: 2002-09-03 18:35
gsgさん、H2さんご回答ありがとうございます。

今までTomcatのログにも、もちろん目を通していたのですが特に有力な情報を得ること
ができませんでした。
しかし改めて見てみると、最初の書き込みに書いたApacheのエラーが吐きだされる時間の
前からTomcatには何もログが残っていないことを発見しました。

どうやらTomcatが死んでから、Apacheにどんどんエラーのログが溜まるようです。
一番最初に気づきそうなモノですが…。

とにかく何かがTomcatを殺しているようです。

ところでJVMについて、ヴァージョン分からないのですがSDKとしては
JDK1.3.1
をインストールしています。調べてみます。
ZZZ
会議室デビュー日: 2001/08/10
投稿数: 17
投稿日時: 2002-09-03 23:17
ZZZです。
Apacheのログは溜まるなら死んでいないって言うことですね。恐らくServletに何らかのExceptionが発生したんでしょう。Apacheがリクエストを受け取って、AJPに投げ捨てているんですが、Tomcat側からの返答がないっていうわけだと思います。
しかし、大体の場合、Exceptionが発生した時、その旨を報告してきますが、Exceptionさえ上位層にthrowしないっていうのは、Tomcatのコンテナが死んだことでしょう。ServletやJSPにSystem.exit(1)のようなものがないでしょうか。ServletがJavaアプリと違って、exit()を使うとコンテナまで道連れにします。

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