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 <pubu...@wso2.com>
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 <az...@wso2.com> wrote:
>
>>
>>
>> On Thu, Oct 2, 2014 at 9:22 AM, Srinath Perera <srin...@wso2.com> 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 <pubu...@wso2.com>
>>> 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 <pubu...@wso2.com>
>>>> 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 <srin...@wso2.com>
>>>>> 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 <dine...@wso2.com
>>>>>> > 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 <
>>>>>>> pubu...@wso2.com> 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
>>>>>>>> Dev@wso2.org
>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Dinesh J. Weerakkody*
>>>>>>> Software Engineer
>>>>>>> WSO2 Inc.
>>>>>>> lean | enterprise | middleware
>>>>>>> M : +94 727 361788 | E : dine...@wso2.com | W : www.wso2.com
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> Dev@wso2.org
>>>>>>> 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: **az...@wso2.com* <az...@wso2.com>
>> * 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: **az...@wso2.com* <az...@wso2.com>
* cell: +94 77 3320919blog: **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*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to