On 26 March 2013 20:44, Jacob Lloyd <jacob....@gmail.com> wrote:
> -------------------------------------------
> ISSUE DETAILS:
> -------------------------------------------
>
> My Tomcat 7 web app is fronted by a HTTP gateway (apache traffic server)
> that provides caching\OAuth authentication etc.
>
> My REST\JSON API web app hosted in Tomcat 7 is retrieving database data and
> serializing into JSON in the HTTP response.
>
> Most of the API calls customers make will retrieve a few hundred or a few
> thousand rows which takes the server-side sub-second time and a couple of
> seconds of network time.
>
> ------------
> PROBLEM:
> ------------
>
> There a few customers that need to make API calls that will retrieve a
> couple of million rows serialized into JSON.
>
> These operations on the Tomcat 7 web app server-side, as expected, takes
> 30-32 seconds.
>
> The issue is that the HTTP gateway (apache traffic server) is configured
> with a global 30 second timeout which results in a timeout to the caller.
>
> Since I can't change this on the HTTP gateway, is there a way to send some
> kind of TCP traffic to the HTTP gateway so it knows I'm still working?
>
> In looking at the connection under wireshark, it appears that Tomcat is
> sending 502's because it never sent the FIN ACK, just an ACK to the HTTP
> gateway.
>
> So Tomcat thinks the connection was open but the HTTP gateway (apache
> traffic server) was done with it and just kept re-sending it's attempts to
> reconnect.
>
> The stack of the web app hosted on Tomcat is: Apache CXF\Spring
>
> Any thoughts?
>
> -------------------------------------------
> Environment Info:
> -------------------------------------------
>
> Apache Tomcat:    7.0.33
> JVM:              1.6.0_37-b06
> JVM Vendor:       Sun Microsystems Inc.
> OS Name:          Linux
> OS Version:       2.6.32-279.el6.x86_64
> OS Architecture:  amd64
>
> Thanks,
> Jacob

If you cannot control the timeout on the gateway server, nor reject
requests that are not going to process in time, you might need to
re-design your application to partition your response and reply back
with a 206.

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

Reply via email to