<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Apache Wicket Clustering With Multiple Options</title>
	<atom:link href="http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/</link>
	<description>to our success!</description>
	<lastBuildDate>Mon, 30 Jan 2012 18:29:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: S</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3517</link>
		<dc:creator>S</dc:creator>
		<pubDate>Tue, 01 Nov 2011 22:03:51 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3517</guid>
		<description>New to Wicket so a basic question. Is there a first level ie; L1 cache maintained by Wicket?
If you are storing only one page per entry in SecondLevelCache, aren&#039;t you losing some of session data and hence resulting in not so good user experience? Or, is there a first level cache that will still save the whole page map?</description>
		<content:encoded><![CDATA[<p>New to Wicket so a basic question. Is there a first level ie; L1 cache maintained by Wicket?<br />
If you are storing only one page per entry in SecondLevelCache, aren&#8217;t you losing some of session data and hence resulting in not so good user experience? Or, is there a first level cache that will still save the whole page map?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SM</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3516</link>
		<dc:creator>SM</dc:creator>
		<pubDate>Mon, 31 Oct 2011 17:01:58 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3516</guid>
		<description>Can someone provide an example where I can use two Session Stores, one a local store that would cache all pages and second a clustered store that would cache only current page.

If JVM running local store goes down and request is routed to another JVM within the cluster, application’s newSession() implementation should check clustered store and return current page.</description>
		<content:encoded><![CDATA[<p>Can someone provide an example where I can use two Session Stores, one a local store that would cache all pages and second a clustered store that would cache only current page.</p>
<p>If JVM running local store goes down and request is routed to another JVM within the cluster, application’s newSession() implementation should check clustered store and return current page.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3515</link>
		<dc:creator>Dmitry</dc:creator>
		<pubDate>Wed, 26 May 2010 20:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3515</guid>
		<description>Hey, what a great post.

But I still have a question. I tried to apply the code &quot;as is&quot; to my Wicket app.
I started 2 instances of web server behind the haproxy to see what will happen.
But I get &#039;Page Expired&#039; exception (especially on an Ajax request) when a request hits second instance.
The problem (traced down) is in this line:
IPageMap pageMap = session.pageMapForName(requestParameters.getPageMapName(), false);

The PageMap returned from the session is null.
Is extra configuration needed for your clustering solution to work? The

Session.(IPageMap)getAttribute(attributeForPageMapName(pageMapName));

simply returns null for the second web server instance.

Any suggestions would be really appreciated.</description>
		<content:encoded><![CDATA[<p>Hey, what a great post.</p>
<p>But I still have a question. I tried to apply the code &#8220;as is&#8221; to my Wicket app.<br />
I started 2 instances of web server behind the haproxy to see what will happen.<br />
But I get &#8216;Page Expired&#8217; exception (especially on an Ajax request) when a request hits second instance.<br />
The problem (traced down) is in this line:<br />
IPageMap pageMap = session.pageMapForName(requestParameters.getPageMapName(), false);</p>
<p>The PageMap returned from the session is null.<br />
Is extra configuration needed for your clustering solution to work? The</p>
<p>Session.(IPageMap)getAttribute(attributeForPageMapName(pageMapName));</p>
<p>simply returns null for the second web server instance.</p>
<p>Any suggestions would be really appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ondra</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3514</link>
		<dc:creator>Ondra</dc:creator>
		<pubDate>Fri, 07 May 2010 03:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3514</guid>
		<description>[1] http://wicketbyexample.com/api/wicket/1.4.5/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.IPageStore.html#storePage%28java.lang.String,%20org.apache.wicket.Page%29</description>
		<content:encoded><![CDATA[<p>[1] <a href="http://wicketbyexample.com/api/wicket/1.4.5/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.IPageStore.html#storePage%28java.lang.String,%20org.apache.wicket.Page%29" rel="nofollow">http://wicketbyexample.com/api/wicket/1.4.5/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.IPageStore.html#storePage%28java.lang.String,%20org.apache.wicket.Page%29</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ondra</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3513</link>
		<dc:creator>Ondra</dc:creator>
		<pubDate>Fri, 07 May 2010 03:21:12 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3513</guid>
		<description>Does that really work? I don&#039;t see any code for this [1]:

&quot;&quot;&quot;Note that the versionNumber and ajaxVersionNumber parameters may be -1.
    * If ajaxVersionNumber is -1 and versionNumber is specified, the page store must return the page with highest ajax version.
    * If both versionNumber and ajaxVersioNumber are -1, the pagestore must return last touched (saved) page version with given id. &quot;&quot;&quot;

Here is my untested implementation with Infinispan (JBoss Cache):
http://ondra.zizka.cz/stranky/programovani/java/web/wicket/wicket-pagestore-jbosscache-infinispan-integration.texy</description>
		<content:encoded><![CDATA[<p>Does that really work? I don&#8217;t see any code for this [1]:</p>
<p>&#8220;&#8221;"Note that the versionNumber and ajaxVersionNumber parameters may be -1.<br />
    * If ajaxVersionNumber is -1 and versionNumber is specified, the page store must return the page with highest ajax version.<br />
    * If both versionNumber and ajaxVersioNumber are -1, the pagestore must return last touched (saved) page version with given id. &#8220;&#8221;"</p>
<p>Here is my untested implementation with Infinispan (JBoss Cache):<br />
<a href="http://ondra.zizka.cz/stranky/programovani/java/web/wicket/wicket-pagestore-jbosscache-infinispan-integration.texy" rel="nofollow">http://ondra.zizka.cz/stranky/programovani/java/web/wicket/wicket-pagestore-jbosscache-infinispan-integration.texy</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Grotzke</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3512</link>
		<dc:creator>Martin Grotzke</dc:creator>
		<pubDate>Sun, 28 Feb 2010 00:32:57 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3512</guid>
		<description>I created the memcached-session-manager ([1]) which is a session manager for tomcat that replicates sessions to memcached nodes for session failover.

There are different serialization strategies available ([2]), besides default java serialization I wrote an xml based serialization (using javolution) which has the advantage, that it supports different class versions (useful for a new deployment of your application).

Right now I&#039;m implementing a feature so that sessions are only replicated if they are modified so that readonly requests don&#039;t cause a session replication.

I created the memcached-session-manager for a wicket application that needs to be highly scalable, and I created a very simple wicket app for performance comparison of the different serialization strategies. I still need to extend this benchmark app (and add it to the github repo), but there&#039;s already a wiki page with a rough overview over the current results - with an older version of msm without the replicate-only-modified-sessions-feature ([3]).

Cheers,
Martin


[1] http://code.google.com/p/memcached-session-manager/
[2] http://code.google.com/p/memcached-session-manager/wiki/SerializationStrategies
[3] http://code.google.com/p/memcached-session-manager/wiki/Performance</description>
		<content:encoded><![CDATA[<p>I created the memcached-session-manager ([1]) which is a session manager for tomcat that replicates sessions to memcached nodes for session failover.</p>
<p>There are different serialization strategies available ([2]), besides default java serialization I wrote an xml based serialization (using javolution) which has the advantage, that it supports different class versions (useful for a new deployment of your application).</p>
<p>Right now I&#8217;m implementing a feature so that sessions are only replicated if they are modified so that readonly requests don&#8217;t cause a session replication.</p>
<p>I created the memcached-session-manager for a wicket application that needs to be highly scalable, and I created a very simple wicket app for performance comparison of the different serialization strategies. I still need to extend this benchmark app (and add it to the github repo), but there&#8217;s already a wiki page with a rough overview over the current results &#8211; with an older version of msm without the replicate-only-modified-sessions-feature ([3]).</p>
<p>Cheers,<br />
Martin</p>
<p>[1] <a href="http://code.google.com/p/memcached-session-manager/" rel="nofollow">http://code.google.com/p/memcached-session-manager/</a><br />
[2] <a href="http://code.google.com/p/memcached-session-manager/wiki/SerializationStrategies" rel="nofollow">http://code.google.com/p/memcached-session-manager/wiki/SerializationStrategies</a><br />
[3] <a href="http://code.google.com/p/memcached-session-manager/wiki/Performance" rel="nofollow">http://code.google.com/p/memcached-session-manager/wiki/Performance</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: phil</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3511</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Wed, 24 Feb 2010 11:17:34 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3511</guid>
		<description>FYI, I think you should add &quot;:&quot; to the sessionId test in unbind :
  public void unbind(final String sessionId) {
        IMap map = client.getMap(mapName);
        for (String key : map.keySet()) {
            if (key.startsWith(sessionId+&quot;:&quot;)) {
                map.remove(key);
            }
        }
    }

And maybe you should define a constant named DELIMITER... and hope that it never happens elsewhere...</description>
		<content:encoded><![CDATA[<p>FYI, I think you should add &#8220;:&#8221; to the sessionId test in unbind :<br />
  public void unbind(final String sessionId) {<br />
        IMap map = client.getMap(mapName);<br />
        for (String key : map.keySet()) {<br />
            if (key.startsWith(sessionId+&#8221;:&#8221;)) {<br />
                map.remove(key);<br />
            }<br />
        }<br />
    }</p>
<p>And maybe you should define a constant named DELIMITER&#8230; and hope that it never happens elsewhere&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kinabalu</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3510</link>
		<dc:creator>kinabalu</dc:creator>
		<pubDate>Sat, 13 Feb 2010 22:29:28 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3510</guid>
		<description>I believe Hazelcast will handle that for you automatically, you can set up different caching structures in your Hazelcast configuration so that older caches get expired, and also set a max so once it reaches a certain point if you haven&#039;t got a persistence mechanism, it&#039;ll drop the oldest.</description>
		<content:encoded><![CDATA[<p>I believe Hazelcast will handle that for you automatically, you can set up different caching structures in your Hazelcast configuration so that older caches get expired, and also set a max so once it reaches a certain point if you haven&#8217;t got a persistence mechanism, it&#8217;ll drop the oldest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: victori</title>
		<link>http://www.mysticcoders.com/blog/apache-wicket-clustering-with-multiple-options/comment-page-1/#comment-3509</link>
		<dc:creator>victori</dc:creator>
		<pubDate>Sat, 13 Feb 2010 21:22:10 +0000</pubDate>
		<guid isPermaLink="false">http://wicketbyexample.com/?p=215#comment-3509</guid>
		<description>There is a bit more to it. The reason my pagestore is so simple is the fact I offload the complexity to memcached. Memcached prematurely expires older caches automatically when it needs room for more space. Last I checked I don&#039;t know of any Java caching implementation that expires caches prematurely like memcached.</description>
		<content:encoded><![CDATA[<p>There is a bit more to it. The reason my pagestore is so simple is the fact I offload the complexity to memcached. Memcached prematurely expires older caches automatically when it needs room for more space. Last I checked I don&#8217;t know of any Java caching implementation that expires caches prematurely like memcached.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

