Sort of related, but I was also looking at ensuring that ajax requests do not 
get cached. Or page requests.

Something along the lines of this code:

final WebResponse response = getWebRequestCycle().getWebResponse();     
response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate, 
no-store");

-----Original Message-----
From: Martijn Dashorst [mailto:martijn.dasho...@gmail.com] 
Sent: Tuesday, June 21, 2011 11:27 AM
To: users@wicket.apache.org
Subject: Re: FW: Debugging page expired exception errors

For the TL;DR: check your cookies... Fun story follows...

We just solved a strange bug in our own application where users were logged out 
after a certain, but random amount of time, and where other users reported 
being thrown out every 5 minutes.

We couldn't discover what happened, and after logging everything sessionid 
related, we noticed two cookies being sent (that we added ourselves in the 
application). Looking at the client side of things, we finally saw that we were 
generating those 2 cookies for each path in the application-which was really 
increased since we introduced bookmarkable URLs...

It appears that browsers have a limit for the amount of cookies per domain, and 
that each browser behaves differently when the limit is
reached:
 - safari/chrome: no limit what soever
 - IE: 50 cookies, FIFO
 - FF: 50 cookies, random eviction

Since we convinced many of our users to switch to firefox, they got thrown out 
at random times... Only the die hards with 'conservative'
sys admins that are using IE were thrown out consistently.

So long story short: check your cookies.

Martijn

On Tue, Jun 21, 2011 at 5:17 PM, Igor Vaynberg <igor.vaynb...@gmail.com> wrote:
> if this was a load issue we would hear a ton of complaints on the list.
>
> -igor
>
> On Tue, Jun 21, 2011 at 5:37 AM, Brown, Berlin [GCG-PFS] 
> <berlin.br...@primerica.com> wrote:
>> I posted this the other day, I think I have some more information.
>>
>> Is there a way to change the session secondlevel cache store and 
>> possibly the default disk store such that there aren't collissions 
>> between file writes/reads.
>>
>> I think in a high volume environment (lots of hits), I am getting 
>> this pageexpiredexception because wicket is trying to access to the 
>> diskpage store data the same time.
>>
>> E.g.  Are multiple writes/reads allowed against the 
>> diskpagestore/DiskPageStoreIndex?
>>
>>
>> - -------------
>>
>> I get two pageexpiredexception errors and I can't recreate the problem.
>> With an error like this, what would cause this type of page expired 
>> exception error?
>>
>> Do you think that the page actually expired?  Or is there something 
>> wrong with writing or reading from the page map file on disk.
>>
>>
>> ERROR ONE:
>>
>> 2011-05-06 23:21:43,619 ERROR -
>> Cannot find the rendered page in session 
>> [pagemap=null,componentPath=2:contentPanelContainer:contentPanel:pane
>> l:f
>> ield,versionNumber=0]
>> org.apache.wicket.protocol.http.PageExpiredException: Cannot find the 
>> rendered page in session 
>> [pagemap=null,componentPath=2:contentPanelContainer:contentPanel:pane
>> l:f
>> ield,versionNumber=0]
>>  at
>> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebR
>> equ
>> estCycleProcessor.java:197)
>>  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)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>>  at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper
>> .ja
>> va:1146)
>>  at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletW
>> rap
>> per.java:592)
>>  at
>> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(Servle
>> tWr
>> apper.java:525)
>>  at
>> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548)
>>  at
>> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:2
>> 69)
>>  at
>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:
>> 831
>> )
>>  at
>> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.jav
>> a:1
>> 478)
>>  at
>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.jav
>> a:1
>> 33)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimina
>> tio
>> n(HttpInboundLink.java:458)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInforma
>> tio
>> n(HttpInboundLink.java:387)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(Htt
>> pIC
>> LReadCallback.java:102)
>>  at
>> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCal
>> lba
>> ck.complete(SSLReadServiceContext.java:1818)
>>  at
>> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted
>> (Ai
>> oReadCompletionListener.java:165)
>>  at
>> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.
>> java:217)
>>  at
>> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChanne
>> lFu
>> ture.java:161)
>>  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
>>  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
>>  at
>> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.j
>> ava
>> :751)
>>  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
>>  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
>> ....
>>
>> ERROR TWO:
>>
>> Request cannot be processed
>> org.apache.wicket.protocol.http.PageExpiredException: Request cannot 
>> be processed
>>  at
>> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebR
>> equ
>> estCycleProcessor.java:163)
>>  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)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>>  at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper
>> .ja
>> va:1146)
>>  at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletW
>> rap
>> per.java:592)
>>  at
>> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(Servle
>> tWr
>> apper.java:525)
>>  at
>> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548)
>>  at
>> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:2
>> 69)
>>  at
>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:
>> 831
>> )
>>  at
>> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.jav
>> a:1
>> 478)
>>  at
>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.jav
>> a:1
>> 33)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimina
>> tio
>> n(HttpInboundLink.java:458)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInforma
>> tio
>> n(HttpInboundLink.java:387)
>>  at
>> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(Htt
>> pIC
>> LReadCallback.java:102)
>>  at
>> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCal
>> lba
>> ck.complete(SSLReadServiceContext.java:1818)
>>  at
>> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted
>> (Ai
>> oReadCompletionListener.java:165)
>>  at
>> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.
>> java:217)
>>  at
>> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChanne
>> lFu
>> ture.java:161)
>>  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
>>  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
>>  at
>> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.j
>> ava
>> :751)
>>  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
>>  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



--
Become a Wicket expert, learn from the best: http://wicketinaction.com

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




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

Reply via email to