Please do not top-post.

On 3/30/2014 11:05 AM, Vicky B wrote:
The problem is i don't have access to the machines where this is deployed i
am only given access to the logs that too as a web url.

Then you will have to contact the people who have access to the machines, and ask them to generate the information.

Hence i am not able to give perfect versions of these but on high level  i
have given the info.'

And the high level information is not sufficient for people to give you more than a guess.

The actual problem i assume is when apache is waiting from response from
tomcat if waiting time cross 1 min I feel apache httpd fails the request or
timesout


I understand that this is what you assume and feel. This may or may not be what is actually occurring. Without more information, the best I can come up with is speculation. It will most probably be wrong.

*** WARNING ***

The following is pure speculation, based on some small snippets of information given in this thread. Use these comments at your own risk. People reading this thread from the archives are STRONGLY advised to read the entire thread before giving ANY weight to the comments below.

*** WARNING ***

My understanding of your basic architecture:

Browser   <--->    Apache HTTPD   <---->   Apache Tomcat
(various) port 80  version 2.2.?    AJP    version 7.0.?
                   Solaris 5?              Java ?

My assumptions are as follows:

1. There are no intervening firewalls between Apache HTTPD and Apache
   Tomcat
2. You use mod_jk to connect Apache HTTPD to Apache Tomcat
3. You are using a recent version of mod_jk
4. mod_jk is no longer using default values

If there is an intervening firewall in place, there are other issues that can arise.

If the above is all correct, then there is a timeout value that can generate an error message from Apache HTTPD to the browser. I don't know what that error message is, but it could conceivably be a 500 internal server error. You will also probably NOT see a corresponding error message in the Apache Tomcat logs.

The value that can be set is the reply_timeout value. It basically governs the number of milliseconds to wait between two AJP packets coming from Apache Tomcat.

By default this is 0, which means wait forever. This can cause problems if you're dealing with poorly behaved applications or accessing balky remote resources from the application.

If you've set this value lower than the longest running request you have in your application, then the Apache HTTPD server will send an error to your browser.

Pictorially:

Browser         --->           Apache HTTPD -----> Apache Tomcat
        (long running request)              (AJP)

                               Apache HTTPD <--X-- Apache Tomcat
                                        (reply_timeout)

Browser         <---           Apache HTTPD
            (error message)

(I apologize to all those folks not using fixed-width fonts in email clients.)

If these assumptions are all correct, then you need to increase the reply_timeout value in workers.properties. What value you ultimately need is dependent on a number of things, including network connectivity between your Apache HTTPD server and Apache Tomcat server, Apache Tomcat server load, and general application responsiveness. If the request in question accesses databases or remote resources, these times must also be considered.

Here's the reference:

http://tomcat.apache.org/connectors-doc/reference/workers.html

. . . (beats working on a software release process - barely)
/mde/



On Sun, Mar 30, 2014 at 10:43 PM, Mark Eggers <its_toas...@yahoo.com> wrote:

On 3/30/2014 8:44 AM, Vicky B wrote:

HI All,

    Below are the inforamtion

    OS : Solaris 5
    apache httpd : 2.2
    tomcat : 7


This is not nearly enough detailed information. You were given detailed
steps on how to generate the information.

Here's an example:

1. What is your precise OS

Instructions: use uname -a

Example:
--------
[root@trident httpd]# uname -a
Linux trident.mdeggers.org 3.13.7-200.fc20.x86_64 #1 SMP Mon Mar 24
22:01:49 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2. What is your precise version of Apache HTTPD

Instructions: use head -2 error_log (or whatever you've named your error
log)

Example:
--------
[root@trident httpd]# head -2 error_log
[Sun Mar 30 03:18:07.721881 2014] [auth_digest:notice] [pid 792] AH01757:
generating secret for digest authentication ...
[Sun Mar 30 03:18:07.735105 2014] [mpm_prefork:notice] [pid 792] AH00163:
Apache/2.4.7 (Fedora) OpenSSL/1.0.1e-fips mod_jk/1.2.37 PHP/5.5.10
SVN/1.8.8 mod_perl/2.0.9-dev Perl/v5.18.2 configured -- resuming normal
operations

3. What is your precise version of Apache Tomcat

Instructions: use $CATALINA_HOME/bin/version.sh

Example:
--------
[mdeggers@trident bin]$ ./version.sh
Using CATALINA_BASE:   /home/mdeggers/Apache/apache-tomcat-7.0.52
Using CATALINA_HOME:   /home/mdeggers/Apache/apache-tomcat-7.0.52
Using CATALINA_TMPDIR: /home/mdeggers/Apache/apache-tomcat-7.0.52/temp
Using JRE_HOME:        /usr/jre
Using CLASSPATH: /home/mdeggers/Apache/apache-tomcat-7.0.52/bin/bootstrap.
jar:/home/mdeggers/Apache/apache-tomcat-7.0.52/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.52
Server built:   Feb 13 2014 10:24:25
Server number:  7.0.52.0
OS Name:        Linux
OS Version:     3.13.7-200.fc20.x86_64
Architecture:   amd64
JVM Version:    1.7.0_51-b13
JVM Vendor:     Oracle Corporation

4. What is the precise version of Java?

Instructions: Use java -version

Example:
--------
[mdeggers@trident bin]$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

 From all of this, we can gather the following information:

OS:     64 bit Linux with a 3.13.7 kernel (Fedora 20)
HTTPD:  Apache/2.4.7 (Fedora) OpenSSL/1.0.1e-fips mod_jk/1.2.37
Java:   1.7.0_51-b13 64-Bit server VM
Tomcat: 7.0.52.0

It's also good to note that the Apache Tomcat in question (7.0.52.0)
generates OS and Java information that is consistent with the other
commands.

This is sort of the MINIMAL information needed. It sets a baseline. We may
ask questions about your mod_jk / mod_proxy_http / mod_proxy_ajp
configuration if you're using one of those.


       log : error.log

message :
[Wed Mar 26 02:24:22 2014] [debug] mod_deflate.c(616): [client
10.32.8.135]
Zlib: Compressed 0 to 2 : URL /pbs/cntrty/getReprots
[Wed Mar 26 02:24:22 2014] [info] [client 10.234.9.0] (131)Connection
reset
by peer: core_output_filter: writing data to the network


This is a truncated copy of an error log, and it appears to be from Apache
HTTPD. This is the Apache Tomcat mailing list, and although many of us use
Apache HTTPD in conjunction with Apache Tomcat, this list is focused on
Apache Tomcat.

A 500 internal server error (as others have pointed out) almost always
generates much more information. For example, a null pointer exception will
generate a 500 internal server error, and there should be logs with the
information.

Here's an example of an Apache HTTPD 500 error report. I've redacted the
IP address and link to protect the guilty.

aaa.bbb.ccc.ccc - - [27/Mar/2014:21:44:23 -0700] "GET /some/page HTTP/1.1"
500 2813 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"

If you look, there is the following pattern:

"GET /some/page HTTP/1.1" 500 2813

This tells you that getting /some/page using HTTP/1.1 returned a 500
internal server error and the number of octets sent was 2813.

Now if you look at your Apache Tomcat logs for the same time period, you
may see the cause of the error. In this case, I get a stack trace (because
people didn't catch errors correctly in this application), which indicates
a null pointer exception.

Armed with this information, I can go back to the application developers
and tell them to fix their code.

You will need to post the relevant portion of the Apache Tomcat logs in
order for anyone to have any idea about what's going on. Please post
in-line and DO NOT attach files. This list more often than not strips
attachments.

In short, you seem to be fixated on the idea that adjusting a 'timeout'
value somewhere will solve your problem and you're asking the list to
provide you with that number.

That's most likely (very likely, extremely likely) NOT the root cause of
your problem. A client abort most often happens when a client gets tired of
waiting for the output and closes the page. This does not (should not)
generate a 500 internal server error.

As others have asked, please help us help you. Without this information we
have no chance of providing any rational suggestions.

. . . . just my two cents.
/mde/

See below for André Warnier's comment which say the same thing in a much
gentler tone.



On Sat, Mar 29, 2014 at 3:49 PM, André Warnier <a...@ice-sa.com> wrote:

  Vicky,

contrary to the recommended usage on this list, I will "top post" this,
because this part relates to the whole of your communications.

The main intent of this message is : *please help us help you*.

"Apache" is the generic name of at least 30 different software packages
"sponsored" and/or "assisted" by the Apache Software Foundation.
See here : http://projects.apache.org/indexes/alpha.html

Among those projects, there exist :
- Apache httpd (see http://httpd.apache.org/)
- Apache Tomcat (see http://tomcat.apache.org/)

Each of those has on-line documentation.  Each of those exists in at
least
10 currently-used versions.  Each of those can run on a variety of
hardware
and software platforms. Each of those has several configuration files,
and
several logfiles.
Each of those has probably more than 10 different "time-out" settings,
which apply to different things.

So when you write "apache" or "apache log" or "timeout", it does not
really mean anything, because it could be one of many possible things.
  So
we have to ask again, and again, to get some real information out of you.
   This is annoying.

On this Apache Tomcat Users's mailing list, there are an average of about
20 messages per day, by people who have a problem and are looking for
help.
   And there are about 10 people who regularly try to help and respond to
these messages.
These people do this for free, using their own time. They all have a job
apart from that, so their time is limited, and they tend to focus on
questions which are asked clearly, and which provide clear and precise
information that allows to diagnose a problem quickly and allow to
provide
quick and precise responses.
And after a while, they tend to ignore people who do not provide such
information, or do not read the answers that they get, or do not respond
(or not in a useful way) to the questions asked, or keep repeating the
same
thing without providing any new information, or look like they are not
reading the on-line documentation, or look like they are not really
trying
themselves to solve their problem and expect someone else to do it all
for
them; or look like they are not wanting to think by themselves and
understand the tools which they are using.

Surely, you do not want this (being ignored) to happen to you, do you ?
We do not want this to happen either, which is why would you please
answer
the following questions clearly, for a change ?
(And please put the answer below each question, and not all on top of
your
message. Someone will have to read this, and figure out what is the
answer
to what question)

On what platform does this all run ? (OS and version)
(under Linux, the output of "uname -a")

What is the version of Apache httpd that you are using ?
(When you restart Apache httpd, this is written in the first line of the
Apache httpd "error log" file.)

What is the version of mod_jk that you are using ?
(When you restart Apache httpd, this is also written in the first line of
the Apache httpd "error log" file.)

What is the version of Apache tomcat that you are using ?
(under Linux, the output of the command (tomcat_dir)/bin/version.sh).

What is the version of Java that you are using ?
(same thing, or try "java -version")

Note: some of these answers may not be relevant, in the end, to your
problem.  But it saves us a lot of time if you provide them right away,
because then we can at least eliminate in advance some possible
scenarios,
or tell you what to run in order to obtain additional information.

Next :

- when you are mentioning a configuration setting (your "timeout" e.g.),
please indicate clearly where you set this configuration setting (in what
file), and copy the line of that file in your message to the list.

- when you are mentioning a message from a logfile, please indicate the
name and path of that logfile, and copy this entire logfile message in
your
message to the list, as it appear in the logfile, without interpreting it
or cutting pieces out of it.

- if you are getting an error somewhere, please indicate clearly when and
where this error occurs, without forcing someone here to have to pull it
out of you bit by bit over 3 days and 5 message exchanges.

If you had done all that, then you would probably already have received a
couple of useful answers right away, after your first message to the
list,
instead of having to read this manual.

And now, some focused additional comments below.



   @christopher


in response body i see the usual 500 internal server message


What "response body", where ? in the browser ? in the logfile ?



  @Andre

Yes apache is my front end to apache tomcat ,  i use mode_jk connector.


  Thanks. That is the first useful information that you provide.
Now we are just missing versions..


   Regarding  error message in apache logs i see 500 as reponse code for
the

reqeust and i also see below message


Which "apache logs" ?



  broken pipe : connection reset by peer : writing data to network.


In which logfile did you find this ?
Please copy the entire message line here.



  timeout is the direcive in apache which is set to 300 .


Which "timeout" directive, in which configuration file, of which "apache"
program ?
And why did you set this to 300 ? or was this the default value ?





On Sat, Mar 29, 2014 at 3:05 AM, André Warnier <a...@ice-sa.com> wrote:

   Vicky B wrote:


   HI All,


i have configured apache and apache tomcat i.e apache is my http
server
and
tomcat is my webserver.

   The does not seem to make much sense.  Both are HTTP servers and
thus

webservers.
Do you mean that apache http is working as a front-end to Tomcat ?
If so, how does one connect to the other ?


   i am having an isssue where some of request take

   1-2 min to process but i get 500 internal serer message .


   The browser does not "invent" this error.

It comes to it from the server, as HTTP response with a status code
500.
There *must* be an error message somewhere in a log on the server side.

(You have 2 servers, so look in both logfiles).

It can also *not* be a timeout on the client (browser) side.  If there
was
a timeout on the client side, it would close the connection with the
server, and you would never see this message (because the server could
not
send it to the client, if the connection was closed).

The error pages are quite different between Apache httpd and tomcat,
easily distinguished visually.  How does the 500 error page that you
get
look like ?



   IS this something related to timeout value.


The value of timeout in my apache is set 300.

   what timeout ? what "apache" ?




   what could the route cause?



   Nobody can tell you that, before you tell us what is in the
logfile(s).





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

Reply via email to