Rajith,
> > > Yep I am in agreement. The reason I asked about clustering is bcos of > > > the recent thread on session mgt and the need to have the session-mediator > > > state replicated across the cluster (I hope I didn't misunderstand the > > > requirments here). I was wondering if this sort of thing is trivial to > > > implement. Like can we replicate any mediator state if we choose to in a > > > trivial way? > > > > > > > Yes it is, I think the session-mediator has to take the replication in > > to account (i.e. another state full mediator for synapse :)). If you are > > using the ConfigurationContext of axis2 (basically the whole context > > hierarchy) to store the data (for example, the session data table mapped > > using a session id) ** you just need to call ConfigurationContext.flush(); > > to replicate any data which has been changed after the last replication. > > Additionally if you need to just replicate some of the properties of the > > cfgCtx then you can call the the flush method with the property names (see > > the clustering API for the exact signature of the method, I don't remember > > that exactly). > > > > Ruwan, once again thank you for the detailed answer. I really appreciate > it. The reason behind the question "can we replicate any mediator state if > we choose to in a trivial way?" was to figure out if the current axis2 > clustering support is sufficient. > > However we have to be careful when replicating mediator state especially > when there are concurrent modifications on different nodes. This can cause > undesired affects and it is a limitation in our current clustering > implementation. So even for the session map, if two nodes modify the map > concurrently we may have issues. This doc explains the limitations > http://ws.apache.org/axis2/1_3/clustering-guide.html. > So perhaps it's worthwhile to highlight these issues to synapse users who > want to tap into the clustering support. > Yes, we know this limitation is there. Even we have a JIRA for the Throttle mediator [1]. This is because there is no distributed locking mechanism in axis2-clustering implementation. But again we have not came across any requirement to support that level of replication to happen from users and most of them are fine with this error. [1] - https://issues.apache.org/jira/browse/SYNAPSE-180 Thanks, Ruwan -- Ruwan Linton http://www.wso2.org - "Oxygenating the Web Services Platform"
