# Tomcat stoppen



## neurox (20. Sep 2009)

Hallo allerseits,

ich weiß, dass das Thema schon in vielen Foren behandelt worden ist, aber leider helfen mir die gefundenden Threads nicht weiter, deshalb poste ich hier mal mein Problem:

Ich starte unter Debian Lenny 5 verschiedene Instanzen von Tomcat. Das funktioniert auch so weit.

Naturgemäß muss ich jeder Instanz verschiedene Ports für den Shutdown-Befehl und die Connectoren zuweisen. Auch das habe ich getan und die Ports sind offensichtlich auch zu erreichen. Eine Firewall ist nicht installiert


```
tcp6       0      0 127.0.0.1:8105          :::*                    LISTEN     
tcp6       0      0 127.0.0.1:8205          :::*                    LISTEN     
tcp6       0      0 127.0.0.1:8305          :::*                    LISTEN     
tcp6       0      0 127.0.0.1:8405          :::*                    LISTEN     
tcp6       0      0 127.0.0.1:8505          :::*                    LISTEN
```

Wenn ich den/die Server mit catalina.sh stop runter fahren möchte, erhalten ich immer die Meldung


```
Using CATALINA_BASE:   /svr/tomcat/1
Using CATALINA_HOME:   /usr/lib/tomcat6
Using CATALINA_TMPDIR: /svr/tomcat/1/temp
Using JRE_HOME:       /usr/lib/jvm/java-6-openjdk
20.09.2009 20:20:15 org.apache.catalina.startup.Catalina stopServer
SCHWERWIEGEND: Catalina.stop: 
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381)
	at java.net.Socket.connect(Socket.java:537)
	at java.net.Socket.connect(Socket.java:487)
	at java.net.Socket.<init>(Socket.java:384)
	at java.net.Socket.<init>(Socket.java:198)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:421)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:337)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
```

Mit catalina.sh stop -force geht es, aber dann wird einfach nur der Prozess gekillt, was ich nicht besonders schön finde.

Solange ich in der server.xml den Standardport 8005 verwende funktioniert das übrigens alles auch wunderbar. Nur wenn ich den Port ändere, dann läßt er sich nicht mehr runterfahren. Ich denke deshalb, dass ich in der catalina.sh noch einen Parameter für den Shutdown-Port angeben muss. Ich kenne nur leider die Syntax nicht und habe auch nirgends etwas darüber gefunden:

Ich denke mal in der letzte Zeile liegt der Hase im Pfeffer:

```
"$_RUNJAVA" $JAVA_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
```

Weiß da jemand weiter?
Viele Grüße
neurox


----------



## neurox (21. Sep 2009)

Ich denke mal, dass ich den Fehler gefunden habe. In der server.xml habe ich auf eine von mir definiert Variable (CATALINA_OPTS) zugegriffen. Das hat im Prinzip auch funktioniert, nur scheint er die Variable beim shutdown nicht zu verstehen. Ansonsten funktioniert das.

In der catalina.sh

```
CATALINA_OPTS="-DPORT_PREFIX=${PORT_PREFIX}
```

... und in der server.xml


```
<Server port="${PORT_PREFIX}05" shutdown="SHUTDOWN">
```

Wie gesagt, es funktioniert bei starten, da öffnet er auch den richtigen port und auch die Portzuweisung bei den Connectoren funktioniert einwandfrei.

Im Moment kann ich die Server dann nur mit einem "catalina.sh stop -force" runterfahren, was im nicht besonders schön finde.

Wenn da jemand eine Idee hat, wäre ich sehr dankbar!


----------

