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.
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.
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
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!
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.
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.