- PR -

Tomcat5.0.28のshutdown.sh実行時のエラーに関して

投稿者投稿内容
なお
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-11-22 14:02
いつもお世話になっております。
Tomcatの「shutdown.sh」に関して、お聞きしたい事があります。

端末の構成
 ・端末1・・・IP:192.168.1.11  OS:WindowsXP HomeEdition
 ・端末2・・・IP:192.168.1.21  OS:Fedora Core2

Tomcat5.0.28の動作確認を行なう為に、以下 1)〜4) の作業を行ないました。

1)
 端末2(192.168.1.21)に、Tomcatバイナリ版を展開。
  # cd /user/local
  # tar zxvf jakarta-tomcat-5.0.28.tar.gz

2)
 psコマンドで、Tomcatのプロセスが無い事を確認。

3)
 Tomcatを起動。
  # cd /user/local/jakarta-tomcat-5.0.28/bin
  # ./startup.sh

4)
 psコマンドで、Tomcatのプロセスがある事を確認。

5)
 端末1(192.168.1.11)で、Tomcatが起動している事をブラウザで確認。
  http://192.168.1.21:8080
  http://192.168.1.21:8080/jsp-examples/

6)
 Tomcatを停止。
  # ./shutdown.sh

7)
 psコマンドで、Tomcatのプロセスが無い事を確認。

尚、1)〜4)作業時は、端末2(192.168.1.21)のiptablesを停止しています。
(停止時は全IPからのパケットをACCEPTしている状態です。)

ここで、6)の作業を行なうと以下のエラーが表示され、
7)の作業ではTomcatのプロセスが生きたままになっている事を確認しました。
したがって「shutdown.sh」実行後も、端末1のブラウザで画面表示されます。

//////////////////////////////////////////////////////////////////////////////////////
Using CATALINA_BASE: /usr/local/jakarta-tomcat-5.0.28
Using CATALINA_HOME: /usr/local/jakarta-tomcat-5.0.28
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-5.0.28/temp
Using JAVA_HOME: /usr/java/j2sdk1.4.2_06
Catalina.stop: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:410)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:336)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)
//////////////////////////////////////////////////////////////////////////////////////

catalina.shの
 > elif [ "$1" = "stop" ] ; then
 >  shift
 >  exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
 >   -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ >   -Dcatalina.base="$CATALINA_BASE" \
 >   -Dcatalina.home="$CATALINA_HOME" \
 >   -Djava.io.tmpdir="$CATALINA_TMPDIR" \
 >   org.apache.catalina.startup.Bootstrap "$@" stop
の部分でExceptionが発生していると思うのですが、
何故このようなExceptionが吐かれるのか、全く予想がつきません。

現在は、
1)
 Tomcatのプロセスを目で確認する。
  # ps -ef | grep tomcat

2)
 以下のコマンドでTomcatのプロセスをkillする。
  # kill -9 (プロセスID)
という方法で(手動で)一時的に回避しております。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-11-22 14:25
すごく馬鹿なことを書いてしまったので削除します。ごめんなさい。

[ メッセージ編集済み 編集者: シュン 編集日時 2004-11-22 14:48 ]
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-11-23 22:08
お世話になります。
このスレとまったく同じ現象にはまっています。
このスレへの情報等ありましたらよろしくお願いします。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-11-24 08:56
>Catalina.stop: java.net.ConnectException: Connection refused
が出ているのと、iptablesでなにか設定してるとのことなので
shutdown用のポート(デフォルトでは8009)がオープンできない状態なのでは
と思いますが、いかがでしょう。
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-11-24 09:05
progman さん>
ありがとうございます。
当方、初心者なので、詳しくはわかりませんが、SElinux及びfirewallは稼動していない
状態です。
ポートがオープンできない原因が他に考えられることはありますか?
ちなみに、TOMCATを起動して、10秒くらいたってから
SHUTDOWN.SHを実行するとこのエラーは出ません。
あと、起動スクリプトを書いて、サービス(DEAMON??)で行ったときは
OSのSHUTDOWN時には必ずこのエラーが出て、
途中でフリーズしてしまいます。
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-11-24 11:29
先ほどの補足ですが、
一つ目:
--- TOMCATを起動して、10秒くらいたってから
SHUTDOWN.SHを実行するとこのエラーは出ません。----
このタイムラグはなんなのでしょう。

二つ目:
8009ポートはなにかApacheと関係するポートなのでしょうか?

三つ目:
タイムラグがるにせよ直接、SHUTDOWN.SHコマンドをたたけば正常終了するにもかかわらず、OSのシャットダウン時にはTOMCATが起動していると必ずこのエラーになるのはなぜでしょう?

progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-11-24 11:46
shutdown のデフォルトポートは8005ですね。
間違えてました。すいません。

それで
原因はなにかわからないのですが、私が確認していくなら
エラーが出るとき、出ない時それぞれで

netstat -an | grep 8005
を実行する。

telnet localhost 8005
を実行する。

tomcatのログを確認する。

といったことで調べていきます。

>809ポートはなにかApacheと関係するポートなのでしょうか?
server.xmlに
<Server port="8005" shutdown="SHUTDOWN">
といった記述はないですか?


nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-24 11:48
引用:

二つ目:
8009ポートはなにかApacheと関係するポートなのでしょうか?



Tomcatのserver.xmlに以下のような記述があると思います。
コード:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />


AJP ConnectorというのはApacheとTomcat間で連携する際に用いられます。
Tomcat単体で運用する場合はこのConnector要素を削ってしまいましょう。

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