I will change the JkLogLevel and post the results. I have a question
though: Does prepost_timeout also detect if it received http code such
as 503 from app server.

On Wed, Feb 25, 2009 at 9:05 AM, Rainer Jung <rainer.j...@kippdata.de> wrote:
> On 25.02.2009 17:10, Mohit Anchlia wrote:
>>
>> you are right there is a mod-jk.conf. So given my workers.properties
>> file what should I change so that mod_jk detects that app server is
>> down before attempting to send the request. Shouldn't "retries" in
>> workers.properties try to connect to some other app server instead.
>
> Just a wild guess: your prepost timeout of 5 milliseconds produces the error
> messages you cited. First correct this timeout, then do another clean test
> on your test system. You can even increase JkLogLevel to trace (not in
> production) so we can see exactly what is going on. Do not send many
> requests with JkLogLevel trace, just do a minimal test that shows the
> problem.
>
> The early detection of a broken instance should be possible with your
> configuration.
>
>> Here is mod-jk.conf
>>
>> # Where to find workers.properties
>> JkWorkersFile conf/workers.properties
>>
>> # Where to put jk logs
>> JkLogFile /var/log/apache2/mod_jk.log
>>
>> # Set the jk log level [debug/error/info]
>> JkLogLevel error
>>
>> # Allow mod_jk worker status reports, with the URL of
>> http://servername/JkStatus
>> ## This is very helpful for monitoring purposes, but should be
>> ## allowed from the local machine.
>> <Location /JkStatus>
>>     Order deny,allow
>>     Deny from all
>>     Allow from localhost
>> </Location>
>>
>> #JkMount /JkStatus status
>>
>> # Below line forward all requests to application server
>> #JkMount /* local
>>
>>
>> On Wed, Feb 25, 2009 at 2:55 AM, Rainer Jung<rainer.j...@kippdata.de>
>>  wrote:
>>>
>>> On 25.02.2009 02:47, Mohit Anchlia wrote:
>>>>
>>>> In httpd conf I just see JkMount and no other directive. I searched for
>>>> Jk.
>>>
>>> There should be others as well, for instance JkWorkersFile to point to
>>> your
>>> workers.properties. The names of the directives are case insensitive,
>>> they
>>> can also be in files included to your main httpd configuration file via
>>> include directives.
>>>
>>>> Here is workers.properties file:
>>>
>>> ...
>>>>
>>>> # appfe1
>>>
>>> ...
>>>>
>>>> worker.appfe1.socket_timeout=5
>>>
>>> I generally don't like socket_timeout. Others do :)
>>>
>>>> worker.appfe1.prepost_timeout=5
>>>
>>> 5 milliseconds prepost timeout? You're kidding. I assume it should have
>>> been
>>> 5000.
>>>
>>>> worker.appfe1.recycle_timeout=900
>>>
>>> This is deprecated. Use connection_pool_timeout instead. The value is OK,
>>> you should set connectionTimeout on the Tomcat AJP connector to 900000
>>> then.
>>>
>>> Since you are using prefork MPM, you might want to set
>>> connection_pool_minsize to 0 if you want to keep the number of
>>> established
>>> connections low.
>>>
>>> And the same for the other members of the load balancer.
>>>
>>>> On Tue, Feb 24, 2009 at 4:50 PM, Rainer Jung<rainer.j...@kippdata.de>
>>>>  wrote:
>>>>>
>>>>> On 25.02.2009 00:00, Mohit Anchlia wrote:
>>>>>>
>>>>>> Reposting:
>>>>>>
>>>>>> Apache Server - 2.2
>>>>>> Tomcat server 6
>>>>>> Jboss - 4.2
>>>>>>
>>>>>> We have Web Servers talking to Jboss App Servers over mod_jk. When we
>>>>>> do our patch or upgrade of software we do it in rolling fashion so
>>>>>> that there is "0" customer impact. But it looks like mod_jk load
>>>>>> balancer on Web server doesn't detect it as soon as Jboss App Server
>>>>>> goes down. Our goal is to have 0 customer impact. So my question is
>>>>>> what can we do to overcome this problem. Web Server sees Http Error
>>>>>> Code 503.
>>>>>>
>>>>>> Information from log file:
>>>>>>
>>>>>> [Mon Feb 23 13:39:42.146 2009] [31682:4143745888] [error]
>>>>>> ajp_connection_tcp_get_message::jk_ajp_common.c (966): (appfe4) can't
>>>>>> receive the response message from tomcat, network problems or tomcat
>>>>>> (10.10.81.89:8009) is down (errno=104)
>>>>>> [Mon Feb 23 13:39:42.147 2009] [31682:4143745888] [error]
>>>>>> ajp_service::jk_ajp_common.c (2097): (appfe4) Connecting to tomcat
>>>>>> failed. Tomcat is probably not started or is listening on the wrong
>>>>>> port
>>>>>
>>>>> This means that mod_jk detected that your backend is down and thus puts
>>>>> it
>>>>> into an error state. All following requests will no longer be sent to
>>>>> this
>>>>> backend. Once a minute it will send a request there and try, but as
>>>>> long
>>>>> as
>>>>> it is down this test will not succeed and thus all requests will be
>>>>> sent
>>>>> to
>>>>> other nodes.
>>>>>
>>>>> The first request that gets sent to the backend you stopped might get
>>>>> an
>>>>> error back. If you want to prevent that from happening, use
>>>>> Cping/Cpong:
>>>>>
>>>>> http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html
>>>>>
>>>>> so we will detect the broken node before actually sending a request
>>>>> there.
>>>>> More details are not possible to give without your JK configuration (Jk
>>>>> directive sin httpd configuration files, workers.properties and if used
>>>>> uriworkermap.properties).
>>>>>
>>>>> The line number of the above message tells me you are using mod_jk
>>>>> 1.2.25.
>>>>> Although there's nothing wrong in principal with 1.2.25, we always try
>>>>> to
>>>>> improve and you might consider switching to 1.2.27.
>>>>>
>>>>> You should also increase your JkLogLevel to info. As long as only
>>>>> occasional
>>>>> info messages are in your log file everything is fine, but once error
>>>>> messages show up, the additional info messages contain useful
>>>>> formation.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to