[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] finding out from MsgUnit weather it is publish or subscribe message

Michele Laghi wrote:

Hi Michael,
the interception of the messages is done by the ClusterManager by invoking the plugins implementing I_MapMsgToMasterId. The problem is that even if you configure more than one plugin, the request is dispatched to only one master (the load balancing mechanism).

Marcel and I will try to sketch an appropriate and generic solution late this evening. One of the critical points is error handling (for example what to do if one of the servers is down). If you have ideas regarding this any comments and suggestions are welcome.


as we only need to support mirroring of requests and messages (and not yet mirroring
of session state informations) the changes to our cluster plugin interfaces are probably
not a big effort.
The plugins need to return an array of suitable master nodes instead of one (as is
the current implementation).

This could be an approach for implementation:

- Only messages of stratum level 0 are mirrored.
- All mirror nodes are masters (level 0) for their messages
- In the current plugin setup the plugin can't control what happens on error of
one cluster node. Ignoring the currently not available node and deliver to all
others would be the behaviour. The client queue of the failing node would
tail back the message until the mirror is available again.
This needs probably some improvement to have more control in such a situation.

Looking at the message flow diagram that Marcel put out, it looks as if there are two Cluster plugins. Can you point me to the Cluster plugin I would use to intercept publish, subscribe, and query requests ? After intercepting, I want to tbe able to send PtP messages to other servers (I figured something similar to XmlBlasterNativeClient), process the responses, and send ptp messages back to the originating client.

Could you please sketch a detailed message flow of what you
want to achieve (which cluster nodes and clients are involved in which sequence)?