You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by mashleyttu <ma...@gmail.com> on 2016/02/17 00:39:26 UTC

Wicket 6 Clustering - Component Not Found Exception

Hi Everyone, Over the weekend we clustered our Wicket 6 application in
AWS/Tomcat. Since AWS doesn't support multicasting we used an AWS Load
Balancer and the tomcat memcached-session-manager with sticky
sessions=false, sessionbackupasync=false and lockingmode=all. 

We changed our wicket configuration to the following:
	@Override
	public void init(){
		super.init();
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
		
		//Store previous Pages in HttpSession instead of on local disk for
clustering.
		setPageManagerProvider(new DefaultPageManagerProvider(this){
			@Override
			protected IDataStore newDataStore() {
				return new HttpSessionDataStore(getPageManagerContext(), new
PageNumberEvictionStrategy(100));
			}
		});

We are able to navigate from page-to-page (each request going to a different
node) without losing our session (user doesn't get logged out) and we aren't
receiving any page expired exceptions.

The component not found exception occurs every time there is an ajax call
that goes to a different node than the node that first rendered the page.

I know no one here is a tomcat memcached session manager expert, so my
question is: 

from a Wicket perspective is there anything else that needs to be configured
to ensure that everything is stored in the session?

Although, we can turn on sticky sessions, we really only want to do that is
a last resort.

Thanks for any advice that can be given!
Matt

--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Wicket 6 Clustering - Component Not Found Exception

Posted by mashleyttu <ma...@gmail.com>.
Hi,

We are using Wicket 6.11 in production where we have the clustered servers.
It's in memory cache was set to 40 by default. 

I've verify that setting this to 0 fixes the issue! 

I apologize if this default has been changed in a later point release of
Wicket 6, but you really helped me have a better understanding of how Wicket
stores pages internally!

Once again, you have been an excellent help and I am thankful. If I run into
any further issues I'll let you know.

Thanks,
Matt


--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610p4673687.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Wicket 6 Clustering - Component Not Found Exception

Posted by Martin Grigorov <ma...@gmail.com>.
Which version of Wicket do you use?
I cannot verify at the moment but I believe this is 0 by default since a
long time.

Check Wicket guide, section "Page storage". I think this is the second
level cache.
On Feb 21, 2016 12:58 AM, "mashleyttu" <ma...@gmail.com> wrote:

> Hi,
>
> This was also very helpful. A little more insight into our application: It
> is a single page web app and we swap panels via ajax with the following
> code:
>
> myPanel.setOutputMarkupPlaceholderTag(true); //Newly constructed panel
> pnlMain.replaceWith(myPanel); //Replace panel
> pnlMain = myPanel; //Update reference in MainPage.java to new panel
> target.add(myPanel); //Add to target for rendering
>
> On the node where everything worked (node that ran the code above) we had
> all the components on the page we are expecting.
>
> On the node with the component not found exception (code above was not run
> on this node) it had the previous panel that we were on.
>
> Is the DefaultPageStore stored in the session? I'm thinking that is not
> getting serialized by the tomcat memcached session manager.
>
> What would happen if we set cacheSize to 0?
>
> * @param cacheSize
> *            the number of pages to cache in memory before passing them to
> *            {@link IDataStore#storeData(String, int, byte[])}
>
> Thanks so much!
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610p4673683.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Wicket 6 Clustering - Component Not Found Exception

Posted by mashleyttu <ma...@gmail.com>.
Hi,

This was also very helpful. A little more insight into our application: It
is a single page web app and we swap panels via ajax with the following
code:

myPanel.setOutputMarkupPlaceholderTag(true); //Newly constructed panel
pnlMain.replaceWith(myPanel); //Replace panel
pnlMain = myPanel; //Update reference in MainPage.java to new panel
target.add(myPanel); //Add to target for rendering

On the node where everything worked (node that ran the code above) we had
all the components on the page we are expecting.

On the node with the component not found exception (code above was not run
on this node) it had the previous panel that we were on.

Is the DefaultPageStore stored in the session? I'm thinking that is not
getting serialized by the tomcat memcached session manager. 

What would happen if we set cacheSize to 0?

* @param cacheSize
*            the number of pages to cache in memory before passing them to
*            {@link IDataStore#storeData(String, int, byte[])}

Thanks so much!

--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610p4673683.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Wicket 6 Clustering - Component Not Found Exception

Posted by Martin Grigorov <mg...@apache.org>.
Hi,


On Sat, Feb 20, 2016 at 4:47 PM, mashleyttu <ma...@gmail.com> wrote:

> Hi Martin,
>
> Thank you for your quick reply. I had to wait for the weekend for further
> testing. I added the timestamp attribute as you suggested but unfortunately
> that didn't work. I also upgraded to the latest version of tomcat memcached
> session manager (I posted on their forum as well), but no luck.
>
> I've also turned on the following logging in Wicket. Is there any finer
> logging I can enable?
>

I've added more logging to HttpSessionDataStore for 6.23.0/7.3.0:
https://issues.apache.org/jira/browse/WICKET-6098


>
> log4j.logger.org.apache.wicket=TRACE
> log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=TRACE
> log4j.logger.org.apache.wicket.version=TRACE
> log4j.logger.org.apache.wicket.RequestCycle=TRACE
> de.javakaffee.web.msm.level=ALL
>
> The logging you suggested adding did turn up something that is intriguing.
> The page length in bytes is about 2k bytes smaller on the failed request
> than the working request. Same page Id (0). Any thoughts on why that might
> be?
>

It looks like the second page instance has smaller component tree...
To see the difference you will have to add logging
to org.apache.wicket.pageStore.DefaultPageStore#storePage().
Use org.apache.wicket.util.tester.WicketTesterHelper#getComponentData(Page)
to dump the component trees.


>
> Please see logs below:
>
> *LOG - NODE 1 - Loaded the initial page - WORKED*
> 20-Feb-2016 09:47:15.262 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Loading
> session from memcached: E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:15.262 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.LockingStrategy.lock Locking session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:15.269 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.LockingStrategy.acquireLock Locked session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:15.269 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.LockingStrategy.lock Locked session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:15.274 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with
> value
> 'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@695de0f1
> '
> 20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
> 'org.apache.wicket.pageStore.memory.PageTable@125b2442'
> 20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:session' with value
> 'com._806technologies.title1cratecore.components.T1CSession@1da97278'
> 20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb
> 20 09:46:46 CST 2016'
> 20-Feb-2016 09:47:15.281 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute
> 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
> wicket.Title1Crate' with value
> 'org.apache.wicket.page.PageStoreManager$SessionEntry@5f9a337e'
> 20-Feb-2016 09:47:15.282 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Found
> session with id E24FAB17D7B8C7AD74186C659F219E9D
> DEBUG - ServletWebRequest          - Calculating context relative path
> from:
> context path '', filterPrefix '', uri '/wicket/page'
> DEBUG - CompoundRequestMapper      - One compatible mapper found for URL
>
> 'wicket/page?0-1.IBehaviorListener.0-pnlMain-pnlUploaderPanel-cntFileUploader&wicket-ajax=true&wicket-ajax-baseurl=eCrate'
> -> 'Mapper: org.apache.wicket.core.request.mapper.PageInstanceMapper;
> Score:
> 2147483647'
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' attempting to
> acquire lock to page with id '0'
> DEBUG - PageAccessSynchronizer     - http-apr-443-exec-1 acquired lock to
> page 0
> INFO  - BlockTimer                 - getDataObject, t=4 milliseconds
> WARN  - AmazonS3Client             - No content length specified for stream
> data.  Stream contents will be buffered in memory and could result in out
> of
> memory errors.
> INFO  - BlockTimer                 - getDataObject, t=2 milliseconds
> INFO  - BlockTimer                 - getDataObject, t=9 milliseconds
> DEBUG - Page                       - ending request for page [Page class =
> com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
> request org.apache.wicket.protocol.http.servlet.ServletWebRequest@449d2f28
> DEBUG - Page                       - ending request for page [Page class =
> com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
> request org.apache.wicket.protocol.http.servlet.ServletWebRequest@449d2f28
> *INFO  - 806HttpSessionDataStoreLog - StoreData session id:
> E24FAB17D7B8C7AD74186C659F219E9D page id: 0 byte length: 7097*
> INFO  - T806WebApplication         - Writing Timestamp to session.
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' released lock to
> page with id '0'
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' notifying
> blocked
> threads
> 20-Feb-2016 09:47:16.335 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.BackupSessionService.backupSession Starting for
> session id E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:16.335 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.BackupSessionTask.call Starting for session id
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:16.337 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with value
> 'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@695de0f1
> '
> 20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
> 'org.apache.wicket.pageStore.memory.PageTable@125b2442'
> 20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:session' with value
> 'com._806technologies.title1cratecore.components.T1CSession@1da97278'
> 20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb 20
> 09:47:16 CST 2016'
> INFO  - 806HttpSessionDataStoreLog - calling isReplicated
> 20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
> wicket.Title1Crate' with value
> 'org.apache.wicket.page.PageStoreManager$SessionEntry@5f9a337e'
> 20-Feb-2016 09:47:16.339 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.BackupSessionTask.doBackupSession Trying to store
> session in memcached: E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:16.351 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.BackupSessionTask.call Finished for session id
> E24FAB17D7B8C7AD74186C659F219E9D, returning status SUCCESS
> 20-Feb-2016 09:47:16.351 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.BackupSessionTask.releaseLock Releasing lock for
> session E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:16.366 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.LockingStrategy.onAfterBackupSession Stored session
> validity info for session E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:47:16.366 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.RequestTrackingHostValve.logDebugRequestSessionCookie
> Have request session cookie: domain=null, maxAge=-1, path=null,
> value=E24FAB17D7B8C7AD74186C659F219E9D, version=0, secure=false
> 20-Feb-2016 09:47:16.367 FINE [http-apr-443-exec-1]
> de.javakaffee.web.msm.RequestTrackingHostValve.invoke <<<<<< Request
> finished: POST /wicket/page ==================
>
>
> *LOG - NODE 2 - COMP. NOT FOUND*
> 20-Feb-2016 09:48:46.103 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Loading
> session from memcached: E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.103 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.LockingStrategy.lock Locking session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.111 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.LockingStrategy.acquireLock Locked session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.111 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.LockingStrategy.lock Locked session
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.116 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with
> value
> 'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@5124ccb5
> '
> 20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
> 'org.apache.wicket.pageStore.memory.PageTable@46fba8b1'
> 20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:session' with value
> 'com._806technologies.title1cratecore.components.T1CSession@340020df'
> 20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb
> 20 09:48:32 CST 2016'
> 20-Feb-2016 09:48:46.118 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes
> loading attribute
> 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
> wicket.Title1Crate' with value
> 'org.apache.wicket.page.PageStoreManager$SessionEntry@746e2b24'
> 20-Feb-2016 09:48:46.120 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Found
> session with id E24FAB17D7B8C7AD74186C659F219E9D
> DEBUG - ServletWebRequest          - Calculating context relative path
> from:
> context path '', filterPrefix '', uri '/wicket/page'
> DEBUG - CompoundRequestMapper      - One compatible mapper found for URL
>
> 'wicket/page?0-1.IBehaviorListener.0-pnlMain-pnlUploaderPanel-cntFileUploader&wicket-ajax=true&wicket-ajax-baseurl=eCrate'
> -> 'Mapper: org.apache.wicket.core.request.mapper.PageInstanceMapper;
> Score:
> 2147483647'
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' attempting to
> acquire lock to page with id '0'
> DEBUG - PageAccessSynchronizer     - http-apr-443-exec-7 acquired lock to
> page 0
> ERROR - DefaultExceptionMapper     - Unexpected error occurred
> org.apache.wicket.core.request.handler.ComponentNotFoundException: Could
> not
> find component 'pnlMain:pnlUploaderPanel:cntFileUploader' on page 'class
> com._806technologies.title1crateweb.MainPage
>         at
>
> org.apache.wicket.core.request.handler.PageAndComponentProvider.getComponent(PageAndComponentProvider.java:182)
>         at
>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.getComponent(ListenerInterfaceRequestHandler.java:90)
>         at
>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:231)
>         at
>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:861)
>         at
>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>         at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
>         at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
>         at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
>         at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>         at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>         at
>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
>
> com._806technologies.utils.AWSELBHttpsRedirectFilter.doFilter(AWSELBHttpsRedirectFilter.java:45)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
>         at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
>         at
>
> de.javakaffee.web.msm.RequestTrackingContextValve.invoke(RequestTrackingContextValve.java:99)
>         at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
>         at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
>         at
>
> de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:156)
>         at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
>         at
>
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
>         at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
>         at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
>         at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
>         at
>
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
>         at
>
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at
>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.lang.Thread.run(Thread.java:745)
> DEBUG - Page                       - ending request for page [Page class =
> com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
> request org.apache.wicket.protocol.http.servlet.ServletWebRequest@30560be1
> DEBUG - Page                       - ending request for page [Page class =
> com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
> request org.apache.wicket.protocol.http.servlet.ServletWebRequest@30560be1
> *INFO  - 806HttpSessionDataStoreLog - StoreData session id:
> E24FAB17D7B8C7AD74186C659F219E9D page id: 0 byte length: 5198*
> INFO  - T806WebApplication         - Writing Timestamp to session.
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' released lock to
> page with id '0'
> DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' notifying
> blocked
> threads
> 20-Feb-2016 09:48:46.826 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.BackupSessionService.backupSession Starting for
> session id E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.BackupSessionTask.call Starting for session id
> E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with value
> 'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@5124ccb5
> '
> 20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
> 'org.apache.wicket.pageStore.memory.PageTable@46fba8b1'
> 20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:session' with value
> 'com._806technologies.title1cratecore.components.T1CSession@340020df'
> 20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb 20
> 09:48:46 CST 2016'
> INFO  - 806HttpSessionDataStoreLog - calling isReplicated
> 20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
> attribute 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
> wicket.Title1Crate' with value
> 'org.apache.wicket.page.PageStoreManager$SessionEntry@746e2b24'
> 20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.BackupSessionTask.doBackupSession Trying to store
> session in memcached: E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.840 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.BackupSessionTask.call Finished for session id
> E24FAB17D7B8C7AD74186C659F219E9D, returning status SUCCESS
> 20-Feb-2016 09:48:46.840 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.BackupSessionTask.releaseLock Releasing lock for
> session E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.856 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.LockingStrategy.onAfterBackupSession Stored session
> validity info for session E24FAB17D7B8C7AD74186C659F219E9D
> 20-Feb-2016 09:48:46.858 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.RequestTrackingHostValve.logDebugRequestSessionCookie
> Have request session cookie: domain=null, maxAge=-1, path=null,
> value=E24FAB17D7B8C7AD74186C659F219E9D, version=0, secure=false
> 20-Feb-2016 09:48:46.859 FINE [http-apr-443-exec-7]
> de.javakaffee.web.msm.RequestTrackingHostValve.invoke <<<<<< Request
> finished: POST /wicket/page ==================
> 20-Feb-2016 09:48:47.117 FINE [http-apr-443-exec-6]
> de.javakaffee.web.msm.RequestTrackingHostValve.invoke >>>>>> Request
> starting: GET
> /wicket/bookmarkable/org.apache.wicket.markup.html.pages.InternalErrorPage
> (requestedSessionId E24FAB17D7B8C7AD74186C659F219E9D) ==================
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610p4673677.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Wicket 6 Clustering - Component Not Found Exception

Posted by mashleyttu <ma...@gmail.com>.
Hi Martin, 

Thank you for your quick reply. I had to wait for the weekend for further
testing. I added the timestamp attribute as you suggested but unfortunately
that didn't work. I also upgraded to the latest version of tomcat memcached
session manager (I posted on their forum as well), but no luck.

I've also turned on the following logging in Wicket. Is there any finer
logging I can enable?

log4j.logger.org.apache.wicket=TRACE
log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=TRACE
log4j.logger.org.apache.wicket.version=TRACE
log4j.logger.org.apache.wicket.RequestCycle=TRACE
de.javakaffee.web.msm.level=ALL

The logging you suggested adding did turn up something that is intriguing.
The page length in bytes is about 2k bytes smaller on the failed request
than the working request. Same page Id (0). Any thoughts on why that might
be?

Please see logs below:

*LOG - NODE 1 - Loaded the initial page - WORKED*
20-Feb-2016 09:47:15.262 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Loading
session from memcached: E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:15.262 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.LockingStrategy.lock Locking session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:15.269 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.LockingStrategy.acquireLock Locked session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:15.269 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.LockingStrategy.lock Locked session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:15.274 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with
value
'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@695de0f1'
20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
'org.apache.wicket.pageStore.memory.PageTable@125b2442'
20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:session' with value
'com._806technologies.title1cratecore.components.T1CSession@1da97278'
20-Feb-2016 09:47:15.280 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb
20 09:46:46 CST 2016'
20-Feb-2016 09:47:15.281 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute
'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
wicket.Title1Crate' with value
'org.apache.wicket.page.PageStoreManager$SessionEntry@5f9a337e'
20-Feb-2016 09:47:15.282 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Found
session with id E24FAB17D7B8C7AD74186C659F219E9D
DEBUG - ServletWebRequest          - Calculating context relative path from:
context path '', filterPrefix '', uri '/wicket/page'
DEBUG - CompoundRequestMapper      - One compatible mapper found for URL
'wicket/page?0-1.IBehaviorListener.0-pnlMain-pnlUploaderPanel-cntFileUploader&wicket-ajax=true&wicket-ajax-baseurl=eCrate'
-> 'Mapper: org.apache.wicket.core.request.mapper.PageInstanceMapper; Score:
2147483647'
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' attempting to
acquire lock to page with id '0'
DEBUG - PageAccessSynchronizer     - http-apr-443-exec-1 acquired lock to
page 0
INFO  - BlockTimer                 - getDataObject, t=4 milliseconds
WARN  - AmazonS3Client             - No content length specified for stream
data.  Stream contents will be buffered in memory and could result in out of
memory errors.
INFO  - BlockTimer                 - getDataObject, t=2 milliseconds
INFO  - BlockTimer                 - getDataObject, t=9 milliseconds
DEBUG - Page                       - ending request for page [Page class =
com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
request org.apache.wicket.protocol.http.servlet.ServletWebRequest@449d2f28
DEBUG - Page                       - ending request for page [Page class =
com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
request org.apache.wicket.protocol.http.servlet.ServletWebRequest@449d2f28
*INFO  - 806HttpSessionDataStoreLog - StoreData session id:
E24FAB17D7B8C7AD74186C659F219E9D page id: 0 byte length: 7097*
INFO  - T806WebApplication         - Writing Timestamp to session.
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' released lock to
page with id '0'
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-1' notifying blocked
threads
20-Feb-2016 09:47:16.335 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.BackupSessionService.backupSession Starting for
session id E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:16.335 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.BackupSessionTask.call Starting for session id
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:16.337 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with value
'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@695de0f1'
20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
'org.apache.wicket.pageStore.memory.PageTable@125b2442'
20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:session' with value
'com._806technologies.title1cratecore.components.T1CSession@1da97278'
20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb 20
09:47:16 CST 2016'
INFO  - 806HttpSessionDataStoreLog - calling isReplicated
20-Feb-2016 09:47:16.338 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
wicket.Title1Crate' with value
'org.apache.wicket.page.PageStoreManager$SessionEntry@5f9a337e'
20-Feb-2016 09:47:16.339 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.BackupSessionTask.doBackupSession Trying to store
session in memcached: E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:16.351 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.BackupSessionTask.call Finished for session id
E24FAB17D7B8C7AD74186C659F219E9D, returning status SUCCESS
20-Feb-2016 09:47:16.351 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.BackupSessionTask.releaseLock Releasing lock for
session E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:16.366 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.LockingStrategy.onAfterBackupSession Stored session
validity info for session E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:47:16.366 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.RequestTrackingHostValve.logDebugRequestSessionCookie
Have request session cookie: domain=null, maxAge=-1, path=null,
value=E24FAB17D7B8C7AD74186C659F219E9D, version=0, secure=false
20-Feb-2016 09:47:16.367 FINE [http-apr-443-exec-1]
de.javakaffee.web.msm.RequestTrackingHostValve.invoke <<<<<< Request
finished: POST /wicket/page ==================


*LOG - NODE 2 - COMP. NOT FOUND*
20-Feb-2016 09:48:46.103 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Loading
session from memcached: E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.103 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.LockingStrategy.lock Locking session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.111 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.LockingStrategy.acquireLock Locked session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.111 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.LockingStrategy.lock Locked session
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.116 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with
value
'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@5124ccb5'
20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
'org.apache.wicket.pageStore.memory.PageTable@46fba8b1'
20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:session' with value
'com._806technologies.title1cratecore.components.T1CSession@340020df'
20-Feb-2016 09:48:46.117 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb
20 09:48:32 CST 2016'
20-Feb-2016 09:48:46.118 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.deserializeAttributes  
loading attribute
'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
wicket.Title1Crate' with value
'org.apache.wicket.page.PageStoreManager$SessionEntry@746e2b24'
20-Feb-2016 09:48:46.120 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached Found
session with id E24FAB17D7B8C7AD74186C659F219E9D
DEBUG - ServletWebRequest          - Calculating context relative path from:
context path '', filterPrefix '', uri '/wicket/page'
DEBUG - CompoundRequestMapper      - One compatible mapper found for URL
'wicket/page?0-1.IBehaviorListener.0-pnlMain-pnlUploaderPanel-cntFileUploader&wicket-ajax=true&wicket-ajax-baseurl=eCrate'
-> 'Mapper: org.apache.wicket.core.request.mapper.PageInstanceMapper; Score:
2147483647'
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' attempting to
acquire lock to page with id '0'
DEBUG - PageAccessSynchronizer     - http-apr-443-exec-7 acquired lock to
page 0
ERROR - DefaultExceptionMapper     - Unexpected error occurred
org.apache.wicket.core.request.handler.ComponentNotFoundException: Could not
find component 'pnlMain:pnlUploaderPanel:cntFileUploader' on page 'class
com._806technologies.title1crateweb.MainPage
        at
org.apache.wicket.core.request.handler.PageAndComponentProvider.getComponent(PageAndComponentProvider.java:182)
        at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.getComponent(ListenerInterfaceRequestHandler.java:90)
        at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:231)
        at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:861)
        at
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
        at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
        at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
        at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
        at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
        at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
        at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com._806technologies.utils.AWSELBHttpsRedirectFilter.doFilter(AWSELBHttpsRedirectFilter.java:45)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at
de.javakaffee.web.msm.RequestTrackingContextValve.invoke(RequestTrackingContextValve.java:99)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
        at
de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:156)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
        at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
        at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
DEBUG - Page                       - ending request for page [Page class =
com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
request org.apache.wicket.protocol.http.servlet.ServletWebRequest@30560be1
DEBUG - Page                       - ending request for page [Page class =
com._806technologies.title1crateweb.MainPage, id = 0, render count = 1],
request org.apache.wicket.protocol.http.servlet.ServletWebRequest@30560be1
*INFO  - 806HttpSessionDataStoreLog - StoreData session id:
E24FAB17D7B8C7AD74186C659F219E9D page id: 0 byte length: 5198*
INFO  - T806WebApplication         - Writing Timestamp to session.
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' released lock to
page with id '0'
DEBUG - PageAccessSynchronizer     - 'http-apr-443-exec-7' notifying blocked
threads
20-Feb-2016 09:48:46.826 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.BackupSessionService.backupSession Starting for
session id E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.BackupSessionTask.call Starting for session id
E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'Wicket:SessionUnbindingListener-wicket.Title1Crate' with value
'org.apache.wicket.session.HttpSessionStore$SessionBindingListener@5124ccb5'
20-Feb-2016 09:48:46.827 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:page:store:memory' with value
'org.apache.wicket.pageStore.memory.PageTable@46fba8b1'
20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:session' with value
'com._806technologies.title1cratecore.components.T1CSession@340020df'
20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:timestamp' with value 'Sat Feb 20
09:48:46 CST 2016'
INFO  - 806HttpSessionDataStoreLog - calling isReplicated
20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes   storing
attribute 'wicket:wicket.Title1Crate:wicket:persistentPageManagerData -
wicket.Title1Crate' with value
'org.apache.wicket.page.PageStoreManager$SessionEntry@746e2b24'
20-Feb-2016 09:48:46.828 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.BackupSessionTask.doBackupSession Trying to store
session in memcached: E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.840 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.BackupSessionTask.call Finished for session id
E24FAB17D7B8C7AD74186C659F219E9D, returning status SUCCESS
20-Feb-2016 09:48:46.840 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.BackupSessionTask.releaseLock Releasing lock for
session E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.856 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.LockingStrategy.onAfterBackupSession Stored session
validity info for session E24FAB17D7B8C7AD74186C659F219E9D
20-Feb-2016 09:48:46.858 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.RequestTrackingHostValve.logDebugRequestSessionCookie
Have request session cookie: domain=null, maxAge=-1, path=null,
value=E24FAB17D7B8C7AD74186C659F219E9D, version=0, secure=false
20-Feb-2016 09:48:46.859 FINE [http-apr-443-exec-7]
de.javakaffee.web.msm.RequestTrackingHostValve.invoke <<<<<< Request
finished: POST /wicket/page ==================
20-Feb-2016 09:48:47.117 FINE [http-apr-443-exec-6]
de.javakaffee.web.msm.RequestTrackingHostValve.invoke >>>>>> Request
starting: GET
/wicket/bookmarkable/org.apache.wicket.markup.html.pages.InternalErrorPage
(requestedSessionId E24FAB17D7B8C7AD74186C659F219E9D) ==================

--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610p4673677.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Wicket 6 Clustering - Component Not Found Exception

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

I'd suggest to try the following:

 setPageManagerProvider(new DefaultPageManagerProvider(this){
                        @Override
                        protected IDataStore newDataStore() {
                                return new
HttpSessionDataStore(getPageManagerContext(),
new
PageNumberEvictionStrategy(100)) {

    @Override

public void storeData(String sessionId, int pageId, byte[] pageAsBytes)
{
    super.storeData(sessionId, pageId, pageAsBytes);
*    pageManagerContext.setSessionAttribute("timestamps", new
java.util.Date());*
}

};
                        }
                });

The idea is to put some something in the session that marks it as
touched/dirty.
I have seen such behavior with Jetty's JdbcSessionStore - it will serialize
the session to the RDBMS only if it sees that there is something changed in
it.

Additionally I'd suggest to extend HttpSessionDataStore and put logging in
all its methods. Unfortunately it doesn't have much logging at the moment.


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Feb 17, 2016 at 12:39 AM, mashleyttu <ma...@gmail.com> wrote:

> Hi Everyone, Over the weekend we clustered our Wicket 6 application in
> AWS/Tomcat. Since AWS doesn't support multicasting we used an AWS Load
> Balancer and the tomcat memcached-session-manager with sticky
> sessions=false, sessionbackupasync=false and lockingmode=all.
>
> We changed our wicket configuration to the following:
>         @Override
>         public void init(){
>                 super.init();
>
> getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
>
>                 //Store previous Pages in HttpSession instead of on local
> disk for
> clustering.
>                 setPageManagerProvider(new
> DefaultPageManagerProvider(this){
>                         @Override
>                         protected IDataStore newDataStore() {
>                                 return new
> HttpSessionDataStore(getPageManagerContext(), new
> PageNumberEvictionStrategy(100));
>                         }
>                 });
>
> We are able to navigate from page-to-page (each request going to a
> different
> node) without losing our session (user doesn't get logged out) and we
> aren't
> receiving any page expired exceptions.
>
> The component not found exception occurs every time there is an ajax call
> that goes to a different node than the node that first rendered the page.
>
> I know no one here is a tomcat memcached session manager expert, so my
> question is:
>
> from a Wicket perspective is there anything else that needs to be
> configured
> to ensure that everything is stored in the session?
>
> Although, we can turn on sticky sessions, we really only want to do that is
> a last resort.
>
> Thanks for any advice that can be given!
> Matt
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Wicket-6-Clustering-Component-Not-Found-Exception-tp4673610.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>