• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Devaka Cooray
Sheriffs:
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
Bartenders:
  • Carey Brown
  • Roland Mueller

WAS 5.0 session persistence (memory replication)

 
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi guys.
I'm trying to set up 'session persistence' via 'memory replication' and have the following question:
Most docu-PDFs explain how to set up a peer-to-peer topology, where each cluster member holds all session-data from all other cluster members. I tried it - it worked fine.
Now I'm trying to set up a client-server topology but can't achive session replication as long as the 'serving' appServer is NOT a member of the cluster.
1) Is this a prerequisite - all replication servers (server or client) have to be members of the same cluster?
2) Is it impossible to make an outside-cluster server act as the replication-server to which clients (inside a cluster) connect???
3) Placing the server inside the cluster means, the server starts the application installed on the cluster and is part of the workload management process (webserver plugin) as well - what if I don't want this to happen???
Any help / suggestions are highly welcome... I'm starting to get crazy about this one...
Thanks,
Sebastian K.
 
Ranch Hand
Posts: 38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't have an answer to this as i am trying this myself..I will let u know if i have some success.
I am also trying to understand what is significance of partitioning when using inmemory replication
 
Sebastian Krzyzanowski
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
After a few days of hard work (reading and trying... and reading and trying...) I made it!
It is possible to use a "standalone" AppServer outside a cluster for session-inmemory-replication.
The solution: a WAS 5.0 bug!
PQ71038:REPLICATION SERVICE NOT WORKING ON A SERVER CONFIGURED TO RUN IN THE SERVER ONLY MODE FOR STORING SESSIONS
Fixpacks are required - after fixing WAS 5.0 (in my case up to 5.0.2) all finally works fine.
The whole configuration process (replication domain, replication domain entries, replicators, AppServer session-handling...) is quite a "fussy" work though.
If you get stuck, David, drop me a line.
 
david dhavan
Ranch Hand
Posts: 38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
1) can you pls walk me thru' steps needed for a client server in mem replication to work...??
2) I just have WAS 5.0 base and ND..do I need to upgrade to fixpack 1/ fixpack 2.Does the fixpack already has this PTF or we need to apply on top of it.
Thanks in advance
DD
 
Sebastian Krzyzanowski
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You need to update the Deployment Manager (WAS ND) with the ND-fixpack AND the AppServer(s) (WAS base - although not realy "base" anymore since they are managed by the DeploymentManager) with the base-fixpack. The PTF is included in fixpack 1 so fixpack 1 should suffice - but if you're fixing your WAS with fixpack 1 already you should use fixpack 2 as well. IMPORTANT: you first have to update to 5.01 AND then to 5.02 - fixpack 2 only, will not work without fixpack 1.
And now the required steps for in-memory replication:
1) create AppServers, install a application on them and add them to a cluster.
2) create a replication domain (if not already done when creating the cluster). I used the default values although using object-serialisation instead of byte-serialisation might be an option, it needs some extra configuration effort though...
3) create one replication domain entry = replicator (can be done inside configuration of rep. domain) for each AppServer involved in the replication process. IMPORTANT: chose one, unique AppServer and two unique ports for each single entry!
4) Stop AppServers and switch to in-memory replication for each AppServer (Web Container -> Session Management -> Distributed Environment Settings -> Memory to Memory Replication). There choose the appropriate replicator with the correct AppServer asigned in step 3 and set the 'Runtime Mode' to 'client' for most / to 'server' for one dedicated AppServer.
5) For testing only I would recommend switching the replication method to 'medium' (Distributed Environment Settings -> Custom Tuning Parameters) so the session is replicated after each request to a JSP / Servlet.
6) Restart AppServers.
That's all - good luck!
 
david dhavan
Ranch Hand
Posts: 38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Sebastian,
I will try this tomorrow and let you know if I run into any issues.
Quick question -
Is it possible to share in memory sessions between 2 completely seperate (alike)clusters.
I am working on a high availability project and want to know if it was possible to bring down one cluster , do some maintenance on it while other is still actively serving web traffic.
DD.
 
Sebastian Krzyzanowski
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Although I'm not 100% sure about this, I think it's possible. The 'replication domain' is the crucial factor - and a 'replication domain' is cell-based so you should be able to use mem-to-mem rep. between clusters if all the clusters are members of the same cell. Furthermore all replicators (replication entries) are bound to a host and an AppServer, not to a cluster. And finally it's possible to achive replication between cluster-members and NOT cluster-members (remember my question ;-) ) so replication between clusters should work too.
 
No more fooling around. Read this tiny ad:
We need your help - Coderanch server fundraiser
https://coderanch.com/wiki/782867/Coderanch-server-fundraiser
reply
    Bookmark Topic Watch Topic
  • New Topic