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:  
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
danielbrambl...@bellsouth.net

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

Reply via email to