httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Bramblett" <>
Subject [users@httpd] Not your typical broken pipe?
Date Sat, 19 Jun 2010 21:18:09 GMT
Hi folks,

I've got a problem that I'm hoping someone smarter than me can help with.  I have a Java webstart
application that runs on the users local machine.  It communicates via HTTP with a servlet
backend and obtains application specific objects from the backend via serialization.  These
are all Java objects.  The primary architecture is as follows:

client (Java WebStart Application) <----> HTTP <----> Tomcat <---> JDBC
<----> Database     [All works fine with this arrangement.]

When only the Tomcat servlet engine is called directly, via port 8080, all is well and everything
works fine.  However, when I add the Apache Web Server into the picture things start having
problems with regard to the size of the objects being serialized over the HTTP connection.
See the diagram below:

client (Java WebStart Application) <----> HTTP <----> Apache HTTP Server <-->
mod_jk or proxy <---> Tomcat <---> JDBC <----> Database     [Things start
to have problems with this arrangement.]

I really want to use the Apache server in the middle because I don't want the port number
in the URL since our clients are not comfortable allowing that through their firewall plus
I get the benefit of additional logging.  But when I add the Apache HTTP server into the picture
it cuts off the connection for serialized objects approaching 1MB in size.  I've searched
extensively through Google and have found some folks having trouble with mod_jk.  So I took
mod_jk out all together by using a proxy but still the size problem remains which leads me
to think there's an issue with Apache HTTP Server or perhaps my specific setup.  To reiterate
when I point to Tomcat directly, via the 8080 port URL, there are no problems at all, it's
only when the Apache HTTP server is introduced that large object serialization starts failing.

Now for the specifics:

Application/version information.
Apache HTTP Server version: 2.0.52
mod_jk version: 1.2.25
Tomcat version: 5.5.23-1ep
Java version: 6.0
Server operating system: CentOS 4

Specific error on HTTP server: (32)Broken pipe: core_output_filter: writing data to the network
Specific error on Tomcat: getDecisionTrees. Exception! ClientAbortException:
Broken pipe
Specific error on Client: missing CR

Changes I've tried in the http.conf file:
Timeout 300
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 60
EnableMMAP off

Obervations ,comments and/or suggestions are most welcome!

Daniel Bramblett

P.S. I can provide the httpd.conf file on request.

View raw message