PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Service Temporarily Unavailable bei JkMount



ramseier
20.06.07, 09:45
Ich habe folgende "Aufgabenstellung" (um das Wort Problem zu vermeiden):

Ich habe einen Apache 2 Webserver und sechs Instanzen Tomcat welche mittels JkMount in der vHost.conf des Apachen eingebunden werden.

Bei den Instanzen 0,1,3,4,5 klappt das auch sehr gut.
z.B. JKMount /applikation/* worker55-1 steht in der vHost.conf und die Applikation lässt sich auch unter http://serverurl/applikation/start
aufrufen.

Alternativ kann man die Applikation auch unter dem jeweiligen Port des Tomcats aufrufen. http://serverurl:15010/applikation/start.

Der direkte Aufruf der Applikation über den Port funktioniert bei allen Instanzen vom Tomcat einwandfrei. Versuche ich allerdings eine Applikation unter Instanz 2 in der vHost.conf einzubinden bekomme ich im Browser den Fehler: Service Temporarily Unavailable

Im Logfile steht dann der Fehler 503.

Bei allen anderen Instanzen des Tomcat funktioniert die Einbindung via JkMount einwandfrei.

Die Server.xml und die workers.properties für die einzelnen Instanzen sind bis auf die Ports identisch.

Hat irgendwer eine Lösung für diese interessante Aufgabenstellung?

marce
20.06.07, 10:10
Im Logfile steht dann der Fehler 503.
und mehr steht da nicht?

Ansonsten - würde ich vermuten, dass sich irgendwo was beisst oder die Dinger eben doch nicht "bis auf den Port" identisch sind...

Poste doch einfach mal die komplette Konfig mit den originalen Pfaden - aus der Prosa oben lässt sich nämlich nur mit extrem guten Glaskugeln was herausglauben...

ramseier
20.06.07, 10:35
Okay, dann hier die confs und logs..
..anything else?

workers.properties
----------------------------------------------------
# Define worker list
worker.list=worker55-0, worker55-1, worker55-2, worker55-3, worker55-4, worker55-5, worker55-6, worker55-7

# Set properties for worker55-0 (ajp13)
worker.worker55-0.type=ajp13
worker.worker55-0.host=localhost
worker.worker55-0.port=15009
worker.worker55-0.lbfactor=50
worker.worker55-0.cachesize=10
worker.worker55-0.cache_timeout=600
worker.worker55-0.socket_keepalive=1
worker.worker55-0.socket_timeout=300

# Set properties for worker55-1 (ajp13)
worker.worker55-1.type=ajp13
worker.worker55-1.host=localhost
worker.worker55-1.port=15019
worker.worker55-1.lbfactor=50
worker.worker55-1.cachesize=10
worker.worker55-1.cache_timeout=600
worker.worker55-1.socket_keepalive=1
worker.worker55-1.socket_timeout=300

# Set properties for worker55-2 (ajp13)
worker.worker55-2.type=ajp13
worker.worker55-2.host=localhost
worker.worker55-2.port=15029
worker.worker55-2.lbfactor=50
worker.worker55-2.cachesize=10
worker.worker55-2.cache_timeout=600
worker.worker55-2.socket_keepalive=1
worker.worker55-2.socket_timeout=300

# Set properties for worker55-3 (ajp13)
worker.worker55-3.type=ajp13
worker.worker55-3.host=localhost
worker.worker55-3.port=15039
worker.worker55-3.lbfactor=50
worker.worker55-3.cachesize=10
worker.worker55-3.cache_timeout=600
worker.worker55-3.socket_keepalive=1
worker.worker55-3.socket_timeout=300
--------------------------------------------------------------------
vHost.conf
--------------------------------------------------------------------
<VirtualHost *:80>
ServerName applikation.firma.de
ServerAdmin webadmin@firma.de
DocumentRoot "/web/htdocs/applikation.firma.de/docs/"
DirectoryIndex index.htm index.php index.html

ErrorLog /web/logfiles/applikation.firma.de/errors.log
CustomLog /web/logfiles/applikation.firma.de/access.log custom

HostnameLookups Off
UseCanonicalName Off
ServerSignature Off

<Directory "/web/htdocs/applikation.firma.de/docs/">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

JKMount /applikation/* worker55-2
JkMount /servlet/* worker55-2
JkMount /*.jsp worker55-2
JkMount /manager/* worker55-2

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
RedirectMatch permanent ^/index.* /applikation/start
</VirtualHost>
--------------------------------------------------------------------
mod_jk.log
--------------------------------------------------------------------
[Wed Jun 20 09:15:45 2007] [info] jk_handler::mod_jk.c (1971): Service error=0 for worker=worker55-2
[Wed Jun 20 09:54:20 2007] [info] jk_open_socket::jk_connect.c (444): connect to 127.0.0.1:15029 failed with errno=111
[Wed Jun 20 09:54:20 2007] [info] ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:15029) with (errno=111)
[Wed Jun 20 09:54:20 2007] [info] ajp_send_request::jk_ajp_common.c (1248): Error connecting to the Tomcat process.
[Wed Jun 20 09:54:20 2007] [info] ajp_service::jk_ajp_common.c (1749): Sending request to tomcat failed, recoverable operation attempt=1
[Wed Jun 20 09:54:20 2007] [info] jk_open_socket::jk_connect.c (444): connect to 127.0.0.1:15029 failed with errno=111
[Wed Jun 20 09:54:20 2007] [info] ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:15029) with (errno=111)
[Wed Jun 20 09:54:20 2007] [info] ajp_send_request::jk_ajp_common.c (1248): Error connecting to the Tomcat process.
[Wed Jun 20 09:54:20 2007] [info] ajp_service::jk_ajp_common.c (1749): Sending request to tomcat failed, recoverable operation attempt=2
[Wed Jun 20 09:54:20 2007] [info] jk_open_socket::jk_connect.c (444): connect to 127.0.0.1:15029 failed with errno=111
[Wed Jun 20 09:54:20 2007] [info] ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:15029) with (errno=111)
[Wed Jun 20 09:54:20 2007] [info] ajp_send_request::jk_ajp_common.c (1248): Error connecting to the Tomcat process.
[Wed Jun 20 09:54:20 2007] [info] ajp_service::jk_ajp_common.c (1749): Sending request to tomcat failed, recoverable operation attempt=3
[Wed Jun 20 09:54:20 2007] [error] ajp_service::jk_ajp_common.c (1758): Error connecting to tomcat. Tomcat is probably not started or is listening on the wrong port. worker=worker55-2 failed

marce
20.06.07, 10:51
(1) bitte code-Tags verwenden
(2) die server.xml bitte
(3) Hm, die Logmeldungen sehen irgendwie eindeutig aus - aber mal sehen...

ramseier
20.06.07, 14:49
Bitte sehr.. hier die server.xml

nicht funktionierende Instanz:

<Server port="15025" shutdown="SHUTDOWN">

<!-- Global JNDI resources -->
<GlobalNamingResources>

<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactor y"
pathname="conf/tomcat-users.xml" />

</GlobalNamingResources>

<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">

<!-- Define a non-SSL HTTP/1.1 Connector on port 15020 -->
<Connector port="15020" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="15443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

<!-- Note : To use gzip compression you could set the following properties :

compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->

<!-- Define an AJP 1.3 Connector on port 15029 -->
<Connector port="15029"
enableLookups="false" redirectPort="15443" protocol="AJP/1.3" />

<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

<Host name="localhost" appBase="/web/javadocs-55/webapps_2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
funktionierende Instanz:

<Server port="15035" shutdown="SHUTDOWN">

<!-- Global JNDI resources -->
<GlobalNamingResources>

<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactor y"
pathname="conf/tomcat-users.xml" />

</GlobalNamingResources>

<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">

<!-- Define a non-SSL HTTP/1.1 Connector on port 15030 -->
<Connector port="15030" maxHttpHeaderSize="8192"
maxThreads="200" minSpareThreads="75" maxSpareThreads="150"
enableLookups="false" redirectPort="15443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

<!-- Note : To use gzip compression you could set the following properties :

compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->

<!-- Define an AJP 1.3 Connector on port 15039 -->
<Connector port="15039"
enableLookups="false" redirectPort="15443" protocol="AJP/1.3" />

<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

<Host name="localhost" appBase="/web/javadocs-55/webapps_3"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>

marce
20.06.07, 15:04
was mit auf's erste Durschauen auffält (neben der gruseligen Standard-Conf des Tomcat, da könnte man so viel rausschmeissen und hübscher machen *seufz*) ist der id. redirectPort - evtl. beisst sich da was?

Steht denn nach dem Start was sinnvolles im catalina.out?

Ansonsten muss ich mir das nochmals genauer anschauen - braucht aber ein bisserl :-)

ramseier
20.06.07, 16:07
Hier mal die letzten Zeilen der Catalina.out:

Hier ist der, der nicht läuft

INFO: Starting Coyote HTTP/1.1 on http-15020
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:432)
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
at javax.xml.parsers.DocumentBuilderFactory.newInstan ce(Unknown Source)
at org.apache.commons.modeler.util.DomUtil.readXml(Do mUtil.java:284)
at org.apache.commons.modeler.modules.MbeansDescripto rsDOMSource.execute(MbeansDescriptorsDOMSource.jav a:130)
at org.apache.commons.modeler.modules.MbeansDescripto rsDOMSource.loadDescriptors(MbeansDescriptorsDOMSo urce.java:120)
at org.apache.commons.modeler.Registry.load(Registry. java:819)
at org.apache.commons.modeler.Registry.loadDescriptor s(Registry.java:931)
at org.apache.commons.modeler.Registry.loadDescriptor s(Registry.java:909)
at org.apache.commons.modeler.Registry.findDescriptor (Registry.java:992)
at org.apache.commons.modeler.Registry.findManagedBea n(Registry.java:696)
at org.apache.commons.modeler.Registry.findManagedBea n(Registry.java:1047)
at org.apache.commons.modeler.Registry.registerCompon ent(Registry.java:859)
at org.apache.catalina.connector.Connector.start(Conn ector.java:1076)
at org.apache.catalina.core.StandardService.start(Sta ndardService.java:459)
at org.apache.catalina.core.StandardServer.start(Stan dardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalin a.java:551)
... 6 more

und dann noch zum Vergleich der, der läuft:

INFO: Starting Coyote HTTP/1.1 on http-15030
Jun 1, 2007 7:15:44 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:15039
Jun 1, 2007 7:15:45 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/1294 config=null
Jun 1, 2007 7:15:45 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 47638 ms

Was mir spontan sofort ins Auge sticht ist, dass Instanz 2 offensichtlich nicht auf port 15029 lauscht so wie es die Instanz 3 tut:
INFO: JK: ajp13 listening on /0.0.0.0:15039

marce
20.06.07, 20:34
Skizziere bitte mal die komplette Umgebung - sind das parallel installiert Tomcats (also 6 komplette Installationen) oder eine Installation, die dann nur mit unterschiedlichen Konfigfiles gestartet wird?

Die Meldung des Catalina.out lässt darauf schliessen, dass er entweder eine fehlerhafte Config hat oder eben beim parsen einer korrekten Konfig einen Fehler macht - das kann an Whitespaces, Codierung oder ähnlichem liegen - oder eben an einer fehlerhaften Installation des Tomcat.

ramseier
21.06.07, 07:54
Ich bin mir nicht sicher aber ich glaube es sind mehrere Installationen von Tomcat. Für jede Instanz des Tomcats existiert ein Verzeichnis :/usr/local/tomcat-55/tomcat_2/

Allerdings wenn ich einen ps -ef | grep tomcat durchführe bekomme ich folgenden Output:

www 6897 1 0 Jun01 ? 00:00:04 /opt/j2sdk14/bin/java -Djava.endorsed.dirs=/usr/local/tomcat-4/tomcat_1/common/endorsed -classpath /opt/j2sdk14/lib/tools.jar:/usr/local/tomcat-4/tomcat_1/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat-4/tomcat_1 -Dcatalina.home=/usr/local/tomcat-4/tomcat_1 -Djava.io.tmpdir=/usr/local/tomcat-4/tomcat_1/temp org.apache.catalina.startup.Bootstrap start
www 6910 1 0 Jun01 ? 00:00:09 /opt/j2sdk14/bin/java -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Djava.endorsed.dirs=/usr/local/tomcat-4/tomcat/common/endorsed -classpath /opt/j2sdk14/lib/tools.jar:/usr/local/tomcat-4/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat-4/tomcat -Dcatalina.home=/usr/local/tomcat-4/tomcat -Djava.io.tmpdir=/usr/local/tomcat-4/tomcat/temp org.apache.catalina.startup.Bootstrap start
www 6916 1 0 Jun01 ? 00:00:21 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_6/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_6/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_6/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_6/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_6 -Dcatalina.home=/usr/local/tomcat-55/tomcat_6 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_6/temp org.apache.catalina.startup.Bootstrap start
www 6954 1 0 Jun01 ? 00:00:17 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat/common/endorsed -classpath :/usr/local/tomcat-55/tomcat/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat -Dcatalina.home=/usr/local/tomcat-55/tomcat -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat/temp org.apache.catalina.startup.Bootstrap start
www 6961 1 0 Jun01 ? 00:00:45 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_3/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_3/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_3/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_3/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_3 -Dcatalina.home=/usr/local/tomcat-55/tomcat_3 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_3/temp org.apache.catalina.startup.Bootstrap start
www 6997 1 0 Jun01 ? 01:59:33 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_5/conf/logging.properties -server -Xms128m -Xmx368m -XX:MaxPermSize=128m -Dfile.encoding=ISO-8859-1 -Dcom.sun.management.jmxremote -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_5/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_5/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_5/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_5 -Dcatalina.home=/usr/local/tomcat-55/tomcat_5 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_5/temp org.apache.catalina.startup.Bootstrap start
www 6999 1 0 Jun01 ? 00:01:00 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_1/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_1/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_1/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_1/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_1 -Dcatalina.home=/usr/local/tomcat-55/tomcat_1 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_1/temp org.apache.catalina.startup.Bootstrap start
www 7033 1 0 Jun01 ? 00:37:01 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_4/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Dcom.sun.management.jmxremote -XX:MaxPermSize=128m -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_4/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_4/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_4/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_4 -Dcatalina.home=/usr/local/tomcat-55/tomcat_4 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_4/temp org.apache.catalina.startup.Bootstrap start
www 21349 1 0 Jun20 ? 00:01:31 /opt/jre15/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Djava.util.logging.config.file=/usr/local/tomcat-55/tomcat_2/conf/logging.properties -server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1 -Dcom.sun.management.jmxremote -XX:MaxPermSize=128m -Djava.endorsed.dirs=/usr/local/tomcat-55/tomcat_2/common/endorsed -classpath :/usr/local/tomcat-55/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat-55/tomcat_2/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat-55/tomcat_2 -Dcatalina.home=/usr/local/tomcat-55/tomcat_2 -Djava.io.tmpdir=/usr/local/tomcat-55/tomcat_2/temp org.apache.catalina.startup.Bootstrap start

Kannst du damit was anfangen?

marce
21.06.07, 08:04
ok, scheinen ded. Installationen zu sein.

Nochmals expliziet nachgefragt: wenn alle TomCats am laufen sind kann man auf jeden einzelnen direkt zugreifen - mich würde dann nämlich die Fehlermeldung des "komischen" TomCat wundern...

Evtl. auch mal nach dem Start aller Tomcats ein nmap machen, ob wirklich alle Ports offen sind, die offen sein sollten...

Ansonsten gehen mir ehrlich gesagt die Ideen aus - um das mal nachzustellen bräuchte ich die kompletten Konfigurationen und viel Zeit - an beidem mangelt es leider gerade hier sehr :-)

ramseier
21.06.07, 09:03
Man kan die Instanzen einzeln stoppen, starten und es ist jeweils der Tomcat Manager vorhanden.

Welche Konfigurationen gibt es da noch?

Ich dachte da ist die Server.xml und die workers.properties.

Normalerweise müsste ich ja selbst hinter den Fehler kommen wenn ich alle relevanten Confs miteinander vergleiche.

Ich müsste nur wissen wo ich vergleichen muss.

Ist auf jeden Fall schonmal unheimlich nett dass du dir bisher schon so viel Zeit für dieses Thema genommen hast.

vielen Dank dafür..