[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:
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
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
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
Could you please sketch a detailed message flow of what you
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.
want to achieve (which cluster nodes and clients are involved in which