tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard W. Smith, Jr." <smithh032...@gmail.com>
Subject Re: Avoiding/Handling SocketTimeoutException(s) when web application serving resources to mobile clients
Date Mon, 11 Nov 2013 18:04:51 GMT
On Mon, Nov 11, 2013 at 10:23 AM, Christopher Schultz <
chris@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Howard,
>
>
> I might recommend using a Filter like this:
>
> filter() {
>    try {
>      chain.doFilter();
>    } catch (SocketTimeoutException ste) {
>      application.log("Got STE for request " + request.getRequestURI()
> + with client " + request.getHeader("User-Agent"));
>    }
> }
>
> ... or something like that. It might help uncover patterns in dropped
> connections.


agreed, i decided to do this (below) yesterday evening (to prevent the
stacktrace in the log file; noted your recommendation/usage of catching
SocketTimeoutException, thanks),

try {
    chain.doFilter(req, res);
} catch (org.apache.catalina.connector.ClientAbortException e) {
    logger.error("caught
org.apache.catalina.connector.ClientAbortException: " + e.getMessage());
}


since I already know the culprit(s); see details/explanation, below.



> Maybe Igor is right and the problem is some browser (e.g. MSIE 8) and not
> necessarily mobile clients.
>

it is the mobile device phone/internet connection that is lost, recycled,
recovered (or however you want to explain it). see below (and saved a copy
on gist[1], too).

user1 (iPad, internal verizon wireless 4G phone/internet connection)
connects and accesses login.xhtml page

70.215.84.34 - - [09/Nov/2013:13:08:20 -0500] "GET /webapp/index.jsf
HTTP/1.1" 302 -
70.215.84.34 - - [09/Nov/2013:13:08:22 -0500] "GET /webapp/login.jsf
HTTP/1.1" 200 1445
70.215.84.34 - - [09/Nov/2013:13:08:25 -0500] "GET
/webapp/javax.faces.resource/primefaces.css.jsf?ln=primefaces&v=4.0.3
HTTP/1.1" 200 10036


user1 (iPad); note localhost_access_log and tomcat7-stderr log lines below;
note the request filenames, date/time, and exceptions

70.215.84.34 - - [09/Nov/2013:13:09:00 -0500] "GET
/webapp/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=4.0.3
HTTP/1.1" 200 -
70.215.84.34 - - [09/Nov/2013:13:09:00 -0500] "GET
/webapp/javax.faces.resource/jquery/jquery-plugins.js.jsf?ln=primefaces&v=4.0.3
HTTP/1.1" 200 -

Nov 09, 2013 1:09:00 PM org.apache.myfaces.application.ResourceHandlerImpl
handleResourceRequest
SEVERE: Error trying to load resource jquery/jquery.js with library
primefaces :null
ClientAbortException:  java.net.SocketTimeoutException
at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:413)

Nov 09, 2013 1:09:00 PM org.apache.myfaces.application.ResourceHandlerImpl
handleResourceRequest
SEVERE: Error trying to load resource jquery/jquery-plugins.js with library
primefaces :null
ClientAbortException:  java.net.SocketTimeoutException
at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:413)


user1 (iPad, different IP address) clicks Login button on login.xhtml, POST
to server, successful login, server redirects to index.xhtml

70.208.164.166 - - [09/Nov/2013:13:09:52 -0500] "POST /webapp/login.jsf
HTTP/1.1" 302 -
70.208.164.166 - - [09/Nov/2013:13:09:52 -0500] "GET /webapp/index.jsf
HTTP/1.1" 200 7008

Nov 09, 2013 1:09:52 PM pf.ApplicationScopeBean login
INFO: sessionId = user1B4584B981555A703B8E0DA189D2294F5

Nov 09, 2013 1:09:52 PM jsf.users.pf_UsersController loginUser
INFO: user1 (iPad) logged in at 11/09/2013 01:09 PM


user1 (iPad) GET resource, user2 initiate/GET websocket, user1 initiate/GET
websocket, respectively

70.208.164.166 - - [09/Nov/2013:13:09:53 -0500] "GET
/webapp/resources/images/loading_circleThickBox.gif?pfdrid_c=true HTTP/1.1"
304 -

166.137.105.198 - - [09/Nov/2013:13:09:53 -0500] "GET
/webapp/primepush/user27BF5C51CF354C1F4926B835CB7F2083E?X-Atmosphere-Transport=close&X-Atmosphere-tracking-id=f2a3916c-62a0-477e-b226-539857827c2e
HTTP/1.1" 200 -

70.208.164.166 - - [09/Nov/2013:13:09:54 -0500] "GET
/webapp/primepush/user1B4584B981555A703B8E0DA189D2294F5?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.0.3-jquery&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&X-atmo-protocol=true
HTTP/1.1" 101 -


[1]
https://gist.github.com/smithh032772/7380812#file-2013-11-11-discussion_details-txt

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message