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: java.net.SocketException: Broken
pipe
Specific error on Client: java.io.IOException:
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!
Regards,
Daniel Bramblett
P.S. I can provide the httpd.conf file on
request.