On 07/10/2010 17:59, Rob G wrote:
> Hey all,
> 
> Recently migrated a production site (mixture of Servlets and JSPs)
> from Oracle Application Server to Apache/Tomcat. Since then we have
> seen numerous HTTP Error 503 - Service unavailable errors at peak
> times when site is under load. mod_jk.log has the following error
> message(s):
> 
> [2184:1952] [error] jk_lb_worker.c (1473): All tomcat instances
> failed, no more workers left
> 
> I'm looking for help in trying to tweak settings to prevent this, or
> confirmation that I've configured the setup correctly.
> 
> Many thanks
> Rob
> 
> Platform:
> Windows Server 2003 SP2
> 
> Setup:
> Two tomcat instances with a single Apache front end, all on the same server
> 
> Versions
> Tomcat: 6.0.24
> Apache: 2.2.16
> mod SSL: 2.2.16
> Open SSL: 0.9.8
> mod_JK:1.2.30
> 
> Conf:
> httpd.conf:
> 
> <IfModule mod_jk.c>
> 
>     JkWorkersFile conf/workers.properties
>     JkLogFile logs/mod_jk.log
>     JkLogLevel error
>     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
>     JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
>     JkRequestLogFormat "%w %V %T"
>       
>    <Location /*/WEB-INF/*>
>         AllowOverride None
>         deny from all
>    </Location>
> 
>     JkMount /examples balancer
>     JkMount /examples/* balancer
>     JkMount /App1/* balancer
>     JkMount /App2/* balancer
>  </IfModule>
> 
> Workers.properties:
> workers.tomcat_home="C:\tomcat1"
> workers.java_home="C:\Program Files\Java\jdk1.6.0_18"
> ps=\
> 
> # Define workers
> #worker.list=worker1,worker2
> worker.list=balancer
> 
> # Set properties for worker worker1 (ajp13)
> worker.worker1.type=ajp13
> worker.worker1.host=localhost
> worker.worker1.port=8009
> worker.worker1.lbfactor=1
> 
> worker.worker1.cachesize=10
> worker.worker1.connection_pool_timeout=300
> worker.worker1.socket_keepalive=FALSE
> #worker.worker1.recycle_timeout=300
> 
> # Set properties for worker worker2 (ajp13)
> worker.worker2.type=ajp13
> worker.worker2.host=localhost
> worker.worker2.port=8019
> worker.worker2.lbfactor=1
> 
> worker.worker2.cachesize=10
> worker.worker2.connection_pool_timeout=300
> worker.worker2.socket_keepalive=FALSE
> #worker.worker2.recycle_timeout=300
> 
> worker.balancer.type=lb
> worker.balancer.balance_workers=worker1,worker2
> worker.balancer.method=R
> worker.balancer.sticky_session=True
> 
> Server.xml (same for both tomcat instances apart from jvmRoute):
> <?xml version='1.0' encoding='utf-8'?>
> <Server port="8005" shutdown="SHUTDOWN">
> 
>   <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on" />
>   <Listener className="org.apache.catalina.core.JasperListener" />
>   <Listener 
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"
> />
>   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
>   <Listener 
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> />
> 
> 
>   <GlobalNamingResources>
> 
>     <Resource name="UserDatabase" auth="Container"
>               type="org.apache.catalina.UserDatabase"
>               description="User database that can be updated and saved"
>               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>               pathname="conf/tomcat-users.xml" />
>   </GlobalNamingResources>
> 
>   <Service name="Catalina">
> 
>     <Connector port="8080" protocol="HTTP/1.1"
>                connectionTimeout="40000"
>                redirectPort="8443" />
> 
>     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
> 
>     <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">
> 
>       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
>              resourceName="UserDatabase"/>
> 
>       <Host name="localhost"  appBase="webapps"
>             unpackWARs="true" autoDeploy="true"
>             xmlValidation="false" xmlNamespaceAware="false">
> 
>       </Host>
>     </Engine>
>   </Service>
> </Server>

[Answers own previous question]  Weirdness.

In addition to the previous relevant questions:

Are both of the two Tomcat instances actually working?  If the shutdown
port is identical on both (8005), then I think the second one won't
start up.  The connectors certainly won't.

Also, if you're using mod_jk 1.2.30 there's an example config in the
install dir which uses the template config method and has good default
settings.


p


Attachment: 0x62590808.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to