I haven't drop the idea of using HttpSessionManager but what i thought was to evaluate how extent we can use this feature as a global web filter and HttpSessionListener is already placed in the global filter. In the current implementation Hazelcast creates a cluster per webapp, but I'm in progress of make it a single cluster shared across all webapps.
On Mon, Oct 13, 2014 at 10:21 PM, Afkham Azeez <[email protected]> wrote: > Is a Hazelcast cluster created per webapp, or is a single cluster shared > across all webapps? Why did you drop the idea of using a SessionListener & > SessionManager? > > On Mon, Oct 13, 2014 at 7:57 PM, Pubudu Dissanayake <[email protected]> > wrote: > >> >> Hi Azeez/Srinath >> >> I've managed to implement Tomcat Session replication using Hazelcast >> APIs. As per the off-line chats with Azeez and Sameera,This functionality >> is applicable to all web applications which are deploy in WSO2 AS. I've >> introduced a global web filter, which is define in the web.xml in the >> conf/ directory of Tomcat to have it included in all web applications >> deployed. >> As a result I've managed to replicate all the session attributes per web >> application. Furthermore I've tested basic auth webapp which works as >> expected. And I wrote a jmeter script to test session.setAttribute() by >> inserting 100+ records. >> >> Please advice as to how should I thoroughly test this feature. >> >> -Pubudu >> >> >> On Thu, Oct 2, 2014 at 11:40 AM, Afkham Azeez <[email protected]> wrote: >> >>> >>> >>> On Thu, Oct 2, 2014 at 9:22 AM, Srinath Perera <[email protected]> wrote: >>> >>>> I am not sure from notes what we decided. >>>> >>>> Cannot we just used hazelcast session replication? does above design >>>> you mentioned built on top of Hazelcast? >>>> >>> >>> Yes, the plan is to use what Hazelcast provides. Otherwise, we will >>> anyway have to solve all the problems the Hz implementation has solved. >>> >>> >>>> >>>> --Srinath >>>> >>>> On Wed, Oct 1, 2014 at 2:18 PM, Pubudu Dissanayake <[email protected]> >>>> wrote: >>>> >>>>> Hi All, >>>>> >>>>> Based on the Architecture review of " Tomcat session replication using >>>>> caching ", following aspects were discussed. >>>>> Participants >>>>> >>>>> - Azeez, Sameera , Aruna, Jayanga, Gayashan, SupunM, Niranjan and >>>>> Myself >>>>> >>>>> Proposed solution. - key-val: (CarbonSessionCacheKey, Carbon >>>>> SessionCache) >>>>> >>>>> - Initial implementation was based on javax.caching api's. I've >>>>> created CarbonSessionCache and CarbonSessionCacheKey to maintain >>>>> HttpSession in the Hazelcast distributed map. Session will be >>>>> intercepted by using a Tomcat Valve. >>>>> - *Verdict* on the proposed solution. - Cache map Serialization >>>>> and Deserialization is very expensive operation due to heavy traffic. >>>>> Therefore it is not efficient to replicate the whole session object in >>>>> the >>>>> cache map. >>>>> >>>>> Counter Proposed solution >>>>> >>>>> - Having a Hazelcast map per session object. In that way if an >>>>> attribute in the session changes the whole entry should not have to be >>>>> replicated, only the changed attribute. >>>>> - Have a per-session cache - ( session_id ). >>>>> - Issue in this approach as follows >>>>> - How can we acquire the session object from the map ? >>>>> >>>>> *Final verdict *on the feature implementation >>>>> >>>>> - Instead of using the caching APIs, This needs to fix in >>>>> Hazelcast level and do it in the optimal way. [1] >>>>> - HazelcastWM >>>>> <http://docs.hazelcast.org/docs/1.9.4/manual/html/ch08.html> [2], >>>>> Bring in the filter code level in to the tomcat valve instead >>>>> >>>>> -Pubudu >>>>> [1] http://hazelcast.com/use-cases/web-session-clustering/ >>>>> [2] http://docs.hazelcast.org/docs/1.9.4/manual/html/ch08.html >>>>> >>>>> On Wed, Oct 1, 2014 at 10:51 AM, Pubudu Dissanayake <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Srinath >>>>>> >>>>>> Hazelcast WM allows us to cluster user http sessions automatically. >>>>>> Followings are required for enabling Hazelcast Session Clustering >>>>>> <http://hazelcast.com/use-cases/web-session-clustering/> [2][3] >>>>>> >>>>>> - Target application or web server should support Java 1.5+ >>>>>> - Target application or web server should support Servlet 2.4+ >>>>>> spec >>>>>> - Session objects that needs to be clustered have to be >>>>>> Serializable >>>>>> >>>>>> Purpose of web session clustering is to replicate web session state >>>>>> across a distributed application servers. Benefits, allow us to scale out >>>>>> but also avoid any single point of failure and allow us to dynamically >>>>>> handle node failure within the application tier. performance of this >>>>>> web session clustering is high according to VP Hazelcast >>>>>> <https://www.youtube.com/watch?v=8a0LrlOIXq0>. Using Hazelcast >>>>>> session replication can be achieved in two different ways. Observations >>>>>> as >>>>>> follows. >>>>>> >>>>>> - *Hazelcast Enterprise* has native web session clustering build >>>>>> in to Apache Tomcat. >>>>>> - *Opensource Hazelcast* has provide a web session clustering as >>>>>> an external filter, basically Hazelcast filter has to be placed >>>>>> before all >>>>>> of other filters and that will enable us to provide the web session >>>>>> clustering in opensource. In this use case it doesn't required >>>>>> changes to >>>>>> application itself. >>>>>> >>>>>> [1] https://redmine.wso2.com/issues/2816 >>>>>> [2] http://hazelcast.com/use-cases/web-session-clustering/ >>>>>> [3] >>>>>> http://hazelcast.org/docs/latest/manual/html/httpsessionclustering.html >>>>>> [4] https://www.youtube.com/watch?v=8a0LrlOIXq0 >>>>>> >>>>>> More info $subject - Web Session Clustering / Session Replication >>>>>> using Hazelcast >>>>>> >>>>>> -Pubudu >>>>>> >>>>>> >>>>>> On Wed, Oct 1, 2014 at 10:41 AM, Srinath Perera <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> We need to use Hazelcast >>>>>>> >>>>>>> When implemented we need to test this with multilple nodes (at least >>>>>>> 4) and in high load conditions before it is done done. >>>>>>> >>>>>>> --Srinath >>>>>>> >>>>>>> On Wed, Oct 1, 2014 at 8:52 AM, Dinesh J Weerakkody < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I came across this project [1] and might be useful. It is based on >>>>>>>> memcached library. >>>>>>>> >>>>>>>> [1] http://code.google.com/p/memcached-session-manager/ >>>>>>>> >>>>>>>> On Tue, Sep 30, 2014 at 8:01 PM, Pubudu Dissanayake < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi All, >>>>>>>>> >>>>>>>>> I am working on an improvement for Carbon to enable tomcat session >>>>>>>>> replication support using caching .Our previous implementation >>>>>>>>> was based on a Tomcat Valve ( >>>>>>>>> CarbonTomcatSessionReplicationValve.java).And it was used to >>>>>>>>> replicate the session and adding it to cluster message. >>>>>>>>> >>>>>>>>> Http Session replication in carbon works like this (its quite >>>>>>>>> similar to how the same work in a standalone tomcat). >>>>>>>>> >>>>>>>>> 1. Not every webbapp session will be replicated. You need to set a >>>>>>>>> context property (distributable) for the webapp you need. >>>>>>>>> 2. Once enabled, and when the session is modified on a node, that >>>>>>>>> modification is sent to other nodes via a cluster message ( using >>>>>>>>> clustering ) >>>>>>>>> >>>>>>>>> For the new implementation, initial suggestion is to use our >>>>>>>>> caching implementation. So we need to store the session object in the >>>>>>>>> cache >>>>>>>>> and when session is modified, then we need to update the cache. >>>>>>>>> >>>>>>>>> Please guide me through the process what should I carried out and >>>>>>>>> any references to help me further to achieve [1]. >>>>>>>>> >>>>>>>>> [1] https://redmine.wso2.com/issues/2816 >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Pubudu Dissanayake* >>>>>>>>> Software Engineer >>>>>>>>> >>>>>>>>> WSO2 Inc.; http://wso2.com >>>>>>>>> lean.enterprise.middleware >>>>>>>>> Mob: + 94 775 503 304 >>>>>>>>> >>>>>>>>> Blog: http://geekdetected.wordpress.com/ >>>>>>>>> Linkedin: *http://lk.linkedin.com/in/pubududissanayake* >>>>>>>>> <http://lk.linkedin.com/in/pubududissanayake> >>>>>>>>> Flickr : https://www.flickr.com/photos/pubudufx/ >>>>>>>>> Twitter: https://twitter.com/GeekInAction >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Dev mailing list >>>>>>>>> [email protected] >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> *Dinesh J. Weerakkody* >>>>>>>> Software Engineer >>>>>>>> WSO2 Inc. >>>>>>>> lean | enterprise | middleware >>>>>>>> M : +94 727 361788 | E : [email protected] | W : www.wso2.com >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> [email protected] >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> ============================ >>>>>>> Srinath Perera, Ph.D. >>>>>>> http://people.apache.org/~hemapani/ >>>>>>> http://srinathsview.blogspot.com/ >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Pubudu Dissanayake* >>>>>> Software Engineer >>>>>> >>>>>> WSO2 Inc.; http://wso2.com >>>>>> lean.enterprise.middleware >>>>>> Mob: + 94 775 503 304 >>>>>> >>>>>> Blog: http://geekdetected.wordpress.com/ >>>>>> Linkedin: *http://lk.linkedin.com/in/pubududissanayake* >>>>>> <http://lk.linkedin.com/in/pubududissanayake> >>>>>> Flickr : https://www.flickr.com/photos/pubudufx/ >>>>>> Twitter: https://twitter.com/GeekInAction >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Pubudu Dissanayake* >>>>> Software Engineer >>>>> >>>>> WSO2 Inc.; http://wso2.com >>>>> lean.enterprise.middleware >>>>> Mob: + 94 775 503 304 >>>>> >>>>> Blog: http://geekdetected.wordpress.com/ >>>>> Linkedin: *http://lk.linkedin.com/in/pubududissanayake* >>>>> <http://lk.linkedin.com/in/pubududissanayake> >>>>> Flickr : https://www.flickr.com/photos/pubudufx/ >>>>> Twitter: https://twitter.com/GeekInAction >>>>> >>>>> >>>> >>>> >>>> -- >>>> ============================ >>>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera >>>> Site: http://people.apache.org/~hemapani/ >>>> Photos: http://www.flickr.com/photos/hemapani/ >>>> Phone: 0772360902 >>>> >>> >>> >>> >>> -- >>> *Afkham Azeez* >>> Director of Architecture; WSO2, Inc.; http://wso2.com >>> Member; Apache Software Foundation; http://www.apache.org/ >>> * <http://www.apache.org/>* >>> *email: **[email protected]* <[email protected]> >>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>> *http://blog.afkham.org* <http://blog.afkham.org> >>> *twitter: **http://twitter.com/afkham_azeez* >>> <http://twitter.com/afkham_azeez> >>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>> <http://lk.linkedin.com/in/afkhamazeez>* >>> >>> *Lean . Enterprise . Middleware* >>> >> >> >> >> -- >> *Pubudu Dissanayake* >> Software Engineer >> >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> Mob: + 94 775 503 304 >> >> Blog: http://geekdetected.wordpress.com/ >> Linkedin: *http://lk.linkedin.com/in/pubududissanayake* >> <http://lk.linkedin.com/in/pubududissanayake> >> Flickr : https://www.flickr.com/photos/pubudufx/ >> Twitter: https://twitter.com/GeekInAction >> >> > > > -- > *Afkham Azeez* > Director of Architecture; WSO2, Inc.; http://wso2.com > Member; Apache Software Foundation; http://www.apache.org/ > * <http://www.apache.org/>* > *email: **[email protected]* <[email protected]> > * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * > *http://blog.afkham.org* <http://blog.afkham.org> > *twitter: **http://twitter.com/afkham_azeez* > <http://twitter.com/afkham_azeez> > *linked-in: **http://lk.linkedin.com/in/afkhamazeez > <http://lk.linkedin.com/in/afkhamazeez>* > > *Lean . Enterprise . Middleware* > -- *Pubudu Dissanayake* Software Engineer WSO2 Inc.; http://wso2.com lean.enterprise.middleware Mob: + 94 775 503 304 Blog: http://geekdetected.wordpress.com/ Linkedin: *http://lk.linkedin.com/in/pubududissanayake* <http://lk.linkedin.com/in/pubududissanayake> Flickr : https://www.flickr.com/photos/pubudufx/ Twitter: https://twitter.com/GeekInAction
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
