- - PR -
tomcatでの http503エラー について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-01-06 10:22
おはようございます、こあらです。
tomcatでの503エラーについて質問があります。 servlet を更新したところ全てこのエラーが発生しました。 【現状】 1.更新前の動いていたclassと総入れ替えをしたが、同じエラーが発生した。 2.ソースはそのままにしてclass名だけを変更すると正常に動作する。 【環境】 tomcat4.1.12 java1.2.2 solaris 503エラーが発生する原因としては、webサーバに負荷がかかっている ということだと思うのですが、 class名を変更しただけで動くというのはよく理解できません。 現在ほとんどのservletが完成している状態なのでできればclass名を変更することがない 解決方法を探しております。 この件に関して何かお分かりになる方がいらっしゃいましたら ご教授いただけないでしょうか? [ メッセージ編集済み 編集者: こあら 編集日時 2003-01-06 10:41 ] | ||||
|
投稿日時: 2003-01-06 11:04
入れ替えたというのはどういう手順でしょう?
オートリロードに頼っているのでしたら、とりあえずはTomcatの停止、 Class置き換え、Tomcat起動と手順を踏むことをお勧めします。 普通に考えたら動いてる最中にClassが入れ替わったら動作は不安定に なるでしょうけれど。 | ||||
|
投稿日時: 2003-01-07 09:22
こあらです。
まりりさんありがとうございました。
まりりさんの通りの手順で行ったところ正常に動作いたしました。 それまでオートリロードでうまくいっていたため、 Tomcatの再起動を行っていませんでした。 ・・・初歩的なミスですね-); Tomcatにおいて、オートリロードを行わなくなるには何かきっかけのようなものがあるのでしょうか? ちなみに、一度再起動をかけてからは、またオートリロードで動くようになりました。 | ||||
|
投稿日時: 2003-01-07 12:01
server.xmlやweb.xmlの、Contextエレメントのreloadable属性があります。
この辺をチェックしてみましょう。 reloadable="true"だったらオートリロードが有効になってます。 ここを書き換えてTomcatを再起動すれば変更が反映されます。 | ||||
|
投稿日時: 2003-01-07 13:41
まりりさんありがとうございます。
もう少し状況を詳しくお話ししますと 件名にありますhttp503エラーは、reloadable="true"とし、 オートリロードが有効な状態で発生したものです。 (起動と停止を行わないでもCLASSを置き換えて正常に読み込んでおりました) この状態からオートリロードが有効でなくなるには何かきっかけがあるのでしょうか? 設定ファイル等はもちろん手を加えておりません。 それともやはり「動作が不安定になる」ということに終始するのですかね・・・ | ||||
|
投稿日時: 2003-01-07 14:44
Tomcat稼動中にオートリロードが効かなくなる事はないと思います。
が、オートリロードによってすでに読み込まれていたClassが、 別のClassに置き換わったときにコンテナの動きに影響を与えてしまった場合に どうなるかはわからないです。 こあらさんのところで起きた現象はたぶん、 メモリにロードされていたClassが新しいものに置き換わり、 そのときすでにあったインスタンスと異なるものになったため、 インスタンスへのアクセスでVMが予期しないエラーになっている とかそういうことではないかと思います。(完全に想像ですが) 今までのClassの置換えでエラーにならなかったのは上記のような原因に なりそうなClassではなかったとか運が良かったとかそういうことではないかと。 | ||||
|
投稿日時: 2003-01-08 09:23
ログなどを調べてみても直接的な原因まではわかりませんでしたが、
現在おとなしく動いてくれています。 ありがとうございました。 | ||||
1
