I had one question about an issue we are having with our wicket applications and was wondering if anyone else has seen something similar with other wicket apps. ---------- 1. Here is the exception/error we are seeing: ---------- [11/22/11 8:17:37:683 EST] 00000119 SRTServletReq E SRVE0133E: An error occurred while parsing parameters. java.net.SocketTimeoutException: Async operation timed out at com.ibm.ws.tcp.channel.impl.AioTCPReadRequestContextImpl.processSyncRead Request(AioTCPReadRequestContextImpl.java:157) at com.ibm.ws.tcp.channel.impl.TCPReadRequestContextImpl.read(TCPReadReques tContextImpl.java:109) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext.read(SSLReadServiceCon text.java:226) at com.ibm.ws.http.channel.impl.HttpServiceContextImpl.fillABuffer(HttpServ iceContextImpl.java:4127) at com.ibm.ws.http.channel.impl.HttpServiceContextImpl.readSingleBlock(Http ServiceContextImpl.java:3371) at com.ibm.ws.http.channel.impl.HttpServiceContextImpl.readBodyBuffer(HttpS erviceContextImpl.java:3476) at com.ibm.ws.http.channel.inbound.impl.HttpInboundServiceContextImpl.getRe questBodyBuffer(HttpInboundServiceContextImpl.java:1604) at com.ibm.ws.webcontainer.channel.WCCByteBufferInputStream.bufferIsGood(WC CByteBufferInputStream.java:235) at com.ibm.ws.webcontainer.channel.WCCByteBufferInputStream.read(WCCByteBuf ferInputStream.java:153) at com.ibm.ws.webcontainer.srt.http.HttpInputStream.read(HttpInputStream.ja va:308) at com.ibm.ws.webcontainer.servlet.RequestUtils.parsePostData(RequestUtils. java:302) at com.ibm.ws.webcontainer.srt.SRTServletRequest.parseParameters(SRTServlet Request.java:1814) at com.ibm.ws.webcontainer.srt.SRTServletRequest.getParameter(SRTServletReq uest.java:1428) ... ... at org.apache.wicket.protocol.http.servlet.ServletWebRequest.getParameter(S ervletWebRequest.java:133) at org.apache.wicket.protocol.http.request.WebRequestCodingStrategy.decode( WebRequestCodingStrategy.java:209) at org.apache.wicket.Request.getRequestParameters(Request.java:183) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484 ) at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java: 160) And here the user experiences a DELAY of 60 seconds. 70718 [11/18/11 8:37:20:198 EST] 00000173 TCPReadReques > read(64,60000) Entry 70720 [11/18/11 8:37:20:199 EST] 00000173 AioSocketIOCh > readAIOSync Entry 70721 [11/18/11 8:37:20:199 EST] 00000173 AioSocketIOCh 3 calling asyncHelper.read 70722 [11/18/11 8:37:20:199 EST] 00000173 AbstractAsync > multiIO(.,0,true,false,64,false,.,false Entry ... (60 second delay / hung thread here) <<< 1 [11/18/11 8:38:20:201 EST] 00000173 AbstractAsync 3 done waiting for completion notification for future: com.ibm.io.async.AsyncFuture@1940194 <mailto:com.ibm.io.async.AsyncFuture@1940194> 2 [11/18/11 8:38:20:201 EST] 00000173 AbstractAsync 3 Sync operation timed out 3 [11/18/11 8:38:20:201 EST] 00000173 HttpServiceCo 3 IOException, closing the reads: java.net.SocketTimeoutException: Async operation timed out ---------- 2. Here is our application code that we see at the error: An example snippet. ---------- public WelcomePanel( final String id ) { super( id ); this.add( new AjaxLink< Object >( "getStartedNextLink" ) {
@Override public void onEvent( final AjaxRequestTarget target ) { ... Here the application code is not relevant: } } ); } ---------- 3. Here is our application code that we see at the error: An example snippet. ---------- If I look at the stack trace above, here is the code where the error happens from the wicket source. at org.apache.wicket.protocol.http.servlet.ServletWebRequest.getParameter(S ervletWebRequest.java:133) public String getParameter(final String key) { return httpServletRequest.getParameter(key); } ... ---------- 4. My thoughts on this error ---------- - It could be our container. We are using IBM Websphere6. We are talking to the IBM but we haven't heard back yet. It could be a patch fix we need to apply. - It could be web server load with our configuration. We only receive about 20,000 requests on that machine. With our recent wicket applications, we have seen that request count move from around 10,000 requests to 20,000. Maybe the increase in load is causing the the issue. - Because wicket launches two page mapping clean up threads, maybe those threads lockup with IBM's request handling threads?