On Mon, Nov 11, 2013 at 10:23 AM, Christopher Schultz < ch...@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