You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by michalb_cz <mb...@atlas.cz> on 2007/12/04 11:26:06 UTC

wicket cluster on tomcat 6

Lo,

I have been trying to make Tomcat cluster with Wicket, but every time when
there is some operation which use session bound information (backpage
object, models...etc.) PageExpired error occures.
It seems rather like problem in cluster configuration not in wicket, but
maybe somebody here has some experience with this. Note that everything is
ok when one of two cluster node (one of server) is turn off.
(all requests are managed by only one server) or when requests are made on
stateless pages.

Apache HTTP (as loadbalancer)
httpd.conf
JkMount  /wicketapp/* router

worker.properties
worker.list=router
# Set properties for worker1 (ajp12)
worker.worker1.type=ajp13
worker.worker1.host=server1
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.redirect=worker2
# Set properties for worker2 (ajp13)
worker.worker2.type=ajp13
worker.worker2.host=server2
worker.worker2.port=8009
worker.worker2.lbfactor=1
worker.worker2.connection_pool_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=60
# Define the LB worker
worker.router.type=lb
worker.router.balance_workers=worker1,worker2

Tomcat 6
server.xml
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
  	    name="wicketapp"
  	    managerClassName="org.apache.catalina.ha.session.DeltaManager"
	    expireSessionsOnShutdown="false"
	     useDirtyFlag="true">

   <Channel className="org.apache.catalina.tribes.group.GroupChannel">
	<Membership 
		className="org.apache.catalina.tribes.membership.McastService"
		mcastAddr="228.0.0.4"
		mcastPort="45564"
		mcastFrequency="500"
		mcastDropTime="3000"/>
	
	<Receiver 
		className="org.apache.catalina.tribes.transport.nio.NioReceiver"
 	        tcpListenAddress="auto"
		tcpListenPort="11901"
		tcpSelectorTimeout="100"
		tcpThreadCount="2"/>

	<Sender
	       
className="org.apache.catalina.tribes.transport.ReplicationTransmitter"
		replicationMode="synchronous">		
   	            <Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
	</Sender>
						
   </Channel>
	
   <Valve 
	className="org.apache.catalina.ha.tcp.ReplicationValve"
	filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;.*\.css"/>
						
   <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
		tempDir="clusterzone/war-temp/"
		deployDir="clusterzone/war-deploy/"
		watchDir="clusterzone/war-listen/"
		watchEnabled="true"/>
</Cluster>

-- 
View this message in context: http://www.nabble.com/wicket-cluster-on-tomcat-6-tf4942245.html#a14147973
Sent from the Wicket - User 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 cluster on tomcat 6

Posted by Johan Compagner <jc...@gmail.com>.
every second you rerender the table?
is that page versioned? Because you you are constantly changing the tables
and generate new links
then a link click that is right after the ajax update behavior could target
a component that isn't there anymore
If the page is versioned then the link click should be able to rollback the
page and then the link is clicked.

johan


On Dec 13, 2007 1:18 PM, michalb_cz <mb...@atlas.cz> wrote:

>
> I doesn't do that, but when I use setResponsePage(backPage) - links on
> backPage are broken from time to time (I don't know the reason)
> This exception is throwed:
>
> org.apache.wicket.WicketRuntimeException: component
> formChooseCategory:tableShowBooks:rows:202:cells:8:cell:editLink not found
> on page ChooseCategoryPage[id = 32], listener interface =
> [RequestListenerInterface name=ILinkListener, method=public abstract void
> org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
>     at
>
> org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget
> (AbstractRequestCycleProcessor.java:411)
>     at
>
> org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage
> (AbstractRequestCycleProcessor.java:456)
>     at
> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(
> WebRequestCycleProcessor.java:139)
>     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1152)
>     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1248)
>     at org.apache.wicket.RequestCycle.request(RequestCycle.java:489)
>     at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:343)
>     at
> org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java
> :121)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> note that I use AjaxSelfUpdatingTimerBehavior behaviour on form, which
> refresh table each second (btw the row number is changed each second)
>
>
> Johan Compagner wrote:
> >
> > huh?
> > When are you doing back by javascript in your wicket application?
> > Do you have clientside scripts that does fancy things?
> >
> > normally if you want to go back to a previous page then just set that
> page
> > as a response page (on the serverside)
> >
> > johan
> >
> >
> >
> > On Dec 13, 2007 11:49 AM, michalb_cz <mb...@atlas.cz> wrote:
> >
> >>
> >> Any workaround? I can't do just back in history (for example by
> >> javascript),
> >> because I need rerender the back page ('cos I modify back page's model)
> >>
> >>
> >> Sebastiaan van Erk wrote:
> >> >
> >> > It has to do with the page store. Note that the back button will
> work,
> >> > but clicking on links on the page after you use the back button will
> >> > cause page expired.
> >> >
> >> > See:
> >> >
> >> >
> >>
> http://www.slideshare.net/jcompagner/session-stores-page-maps-and-pages/
> >> >
> >> > if you want the nitty gritty details.
> >> >
> >> > But I still think you should first verify that this is actually what
> is
> >> > happening.
> >> >
> >> > Regards,
> >> > Sebastiaan
> >> >
> >> > michalb_cz wrote:
> >> >> And the reason? Why back button won't work on cluster?
> >> >>
> >> >>
> >> >>
> >> >> Matej Knopp-2 wrote:
> >> >>> Hi,
> >> >>>
> >> >>> at this point back button will not work across cluster (it's
> planned
> >> >>> though). However, the failover for last accessed page should work
> >> >>> anyway. If it doesn't, you have probably problem in your
> >> >>> configuration.
> >> >>>
> >> >>> -Matej
> >> >>>
> >> >>
> >> >
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14313634.html
> >>  Sent from the Wicket - User mailing list archive at
> >> Nabble.com <http://nabble.com/><http://nabble.com/>
> >> .
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14314938.html
>  Sent from the Wicket - User mailing list archive at Nabble.com<http://nabble.com/>
> .
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: wicket cluster on tomcat 6

Posted by michalb_cz <mb...@atlas.cz>.
I doesn't do that, but when I use setResponsePage(backPage) - links on
backPage are broken from time to time (I don't know the reason)
This exception is throwed:

org.apache.wicket.WicketRuntimeException: component
formChooseCategory:tableShowBooks:rows:202:cells:8:cell:editLink not found
on page ChooseCategoryPage[id = 32], listener interface =
[RequestListenerInterface name=ILinkListener, method=public abstract void
org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
     at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:411)
     at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:456)
     at
org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1152)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1248)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:489)
     at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:343)
     at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:121)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note that I use AjaxSelfUpdatingTimerBehavior behaviour on form, which
refresh table each second (btw the row number is changed each second)


Johan Compagner wrote:
> 
> huh?
> When are you doing back by javascript in your wicket application?
> Do you have clientside scripts that does fancy things?
> 
> normally if you want to go back to a previous page then just set that page
> as a response page (on the serverside)
> 
> johan
> 
> 
> 
> On Dec 13, 2007 11:49 AM, michalb_cz <mb...@atlas.cz> wrote:
> 
>>
>> Any workaround? I can't do just back in history (for example by
>> javascript),
>> because I need rerender the back page ('cos I modify back page's model)
>>
>>
>> Sebastiaan van Erk wrote:
>> >
>> > It has to do with the page store. Note that the back button will work,
>> > but clicking on links on the page after you use the back button will
>> > cause page expired.
>> >
>> > See:
>> >
>> >
>> http://www.slideshare.net/jcompagner/session-stores-page-maps-and-pages/
>> >
>> > if you want the nitty gritty details.
>> >
>> > But I still think you should first verify that this is actually what is
>> > happening.
>> >
>> > Regards,
>> > Sebastiaan
>> >
>> > michalb_cz wrote:
>> >> And the reason? Why back button won't work on cluster?
>> >>
>> >>
>> >>
>> >> Matej Knopp-2 wrote:
>> >>> Hi,
>> >>>
>> >>> at this point back button will not work across cluster (it's planned
>> >>> though). However, the failover for last accessed page should work
>> >>> anyway. If it doesn't, you have probably problem in your
>> >>> configuration.
>> >>>
>> >>> -Matej
>> >>>
>> >>
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14313634.html
>>  Sent from the Wicket - User mailing list archive at
>> Nabble.com<http://nabble.com/>
>> .
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14314938.html
Sent from the Wicket - User 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 cluster on tomcat 6

Posted by Johan Compagner <jc...@gmail.com>.
huh?
When are you doing back by javascript in your wicket application?
Do you have clientside scripts that does fancy things?

normally if you want to go back to a previous page then just set that page
as a response page (on the serverside)

johan



On Dec 13, 2007 11:49 AM, michalb_cz <mb...@atlas.cz> wrote:

>
> Any workaround? I can't do just back in history (for example by
> javascript),
> because I need rerender the back page ('cos I modify back page's model)
>
>
> Sebastiaan van Erk wrote:
> >
> > It has to do with the page store. Note that the back button will work,
> > but clicking on links on the page after you use the back button will
> > cause page expired.
> >
> > See:
> >
> > http://www.slideshare.net/jcompagner/session-stores-page-maps-and-pages/
> >
> > if you want the nitty gritty details.
> >
> > But I still think you should first verify that this is actually what is
> > happening.
> >
> > Regards,
> > Sebastiaan
> >
> > michalb_cz wrote:
> >> And the reason? Why back button won't work on cluster?
> >>
> >>
> >>
> >> Matej Knopp-2 wrote:
> >>> Hi,
> >>>
> >>> at this point back button will not work across cluster (it's planned
> >>> though). However, the failover for last accessed page should work
> >>> anyway. If it doesn't, you have probably problem in your
> >>> configuration.
> >>>
> >>> -Matej
> >>>
> >>
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14313634.html
>  Sent from the Wicket - User mailing list archive at Nabble.com<http://nabble.com/>
> .
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: wicket cluster on tomcat 6

Posted by michalb_cz <mb...@atlas.cz>.
Any workaround? I can't do just back in history (for example by javascript),
because I need rerender the back page ('cos I modify back page's model)


Sebastiaan van Erk wrote:
> 
> It has to do with the page store. Note that the back button will work, 
> but clicking on links on the page after you use the back button will 
> cause page expired.
> 
> See:
> 
> http://www.slideshare.net/jcompagner/session-stores-page-maps-and-pages/
> 
> if you want the nitty gritty details.
> 
> But I still think you should first verify that this is actually what is 
> happening.
> 
> Regards,
> Sebastiaan
> 
> michalb_cz wrote:
>> And the reason? Why back button won't work on cluster? 
>> 
>> 
>> 
>> Matej Knopp-2 wrote:
>>> Hi,
>>>
>>> at this point back button will not work across cluster (it's planned
>>> though). However, the failover for last accessed page should work
>>> anyway. If it doesn't, you have probably problem in your
>>> configuration.
>>>
>>> -Matej
>>>
>> 
> 
>  
> 

-- 
View this message in context: http://www.nabble.com/wicket-cluster-on-tomcat-6-tp14147973p14313634.html
Sent from the Wicket - User 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 cluster on tomcat 6

Posted by Sebastiaan van Erk <se...@sebster.com>.
It has to do with the page store. Note that the back button will work, 
but clicking on links on the page after you use the back button will 
cause page expired.

See:

http://www.slideshare.net/jcompagner/session-stores-page-maps-and-pages/

if you want the nitty gritty details.

But I still think you should first verify that this is actually what is 
happening.

Regards,
Sebastiaan

michalb_cz wrote:
> And the reason? Why back button won't work on cluster? 
> 
> 
> 
> Matej Knopp-2 wrote:
>> Hi,
>>
>> at this point back button will not work across cluster (it's planned
>> though). However, the failover for last accessed page should work
>> anyway. If it doesn't, you have probably problem in your
>> configuration.
>>
>> -Matej
>>
> 

Re: wicket cluster on tomcat 6

Posted by michalb_cz <mb...@atlas.cz>.
And the reason? Why back button won't work on cluster? 



Matej Knopp-2 wrote:
> 
> Hi,
> 
> at this point back button will not work across cluster (it's planned
> though). However, the failover for last accessed page should work
> anyway. If it doesn't, you have probably problem in your
> configuration.
> 
> -Matej
> 

-- 
View this message in context: http://www.nabble.com/wicket-cluster-on-tomcat-6-tf4942245.html#a14151756
Sent from the Wicket - User 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 cluster on tomcat 6

Posted by Matej Knopp <ma...@gmail.com>.
Hi,

at this point back button will not work across cluster (it's planned
though). However, the failover for last accessed page should work
anyway. If it doesn't, you have probably problem in your
configuration.

-Matej

On Dec 4, 2007 11:26 AM, michalb_cz <mb...@atlas.cz> wrote:
>
> Lo,
>
> I have been trying to make Tomcat cluster with Wicket, but every time when
> there is some operation which use session bound information (backpage
> object, models...etc.) PageExpired error occures.
> It seems rather like problem in cluster configuration not in wicket, but
> maybe somebody here has some experience with this. Note that everything is
> ok when one of two cluster node (one of server) is turn off.
> (all requests are managed by only one server) or when requests are made on
> stateless pages.
>
> Apache HTTP (as loadbalancer)
> httpd.conf
> JkMount  /wicketapp/* router
>
> worker.properties
> worker.list=router
> # Set properties for worker1 (ajp12)
> worker.worker1.type=ajp13
> worker.worker1.host=server1
> worker.worker1.port=8009
> worker.worker1.lbfactor=1
> worker.worker1.redirect=worker2
> # Set properties for worker2 (ajp13)
> worker.worker2.type=ajp13
> worker.worker2.host=server2
> worker.worker2.port=8009
> worker.worker2.lbfactor=1
> worker.worker2.connection_pool_timeout=600
> worker.worker2.socket_keepalive=1
> worker.worker2.socket_timeout=60
> # Define the LB worker
> worker.router.type=lb
> worker.router.balance_workers=worker1,worker2
>
> Tomcat 6
> server.xml
> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>             name="wicketapp"
>             managerClassName="org.apache.catalina.ha.session.DeltaManager"
>             expireSessionsOnShutdown="false"
>              useDirtyFlag="true">
>
>    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
>         <Membership
>                 className="org.apache.catalina.tribes.membership.McastService"
>                 mcastAddr="228.0.0.4"
>                 mcastPort="45564"
>                 mcastFrequency="500"
>                 mcastDropTime="3000"/>
>
>         <Receiver
>                 className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>                 tcpListenAddress="auto"
>                 tcpListenPort="11901"
>                 tcpSelectorTimeout="100"
>                 tcpThreadCount="2"/>
>
>         <Sender
>
> className="org.apache.catalina.tribes.transport.ReplicationTransmitter"
>                 replicationMode="synchronous">
>                     <Transport
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
>         </Sender>
>
>    </Channel>
>
>    <Valve
>         className="org.apache.catalina.ha.tcp.ReplicationValve"
>         filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;.*\.css"/>
>
>    <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>                 tempDir="clusterzone/war-temp/"
>                 deployDir="clusterzone/war-deploy/"
>                 watchDir="clusterzone/war-listen/"
>                 watchEnabled="true"/>
> </Cluster>
>
> --
> View this message in context: http://www.nabble.com/wicket-cluster-on-tomcat-6-tf4942245.html#a14147973
> Sent from the Wicket - User 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
>
>

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