I've refactored the management code to make it work on a cluster of JBM2 nodes.
Now, all management operations use core messages which are replicated on the live &
backup nodes to ensure that their states are correctly replicated (e.g. creation on a
queue on both nodes, etc.)
To make it simple to manage JBM, we still expose the management operations through JMX
MBeans. These mbeans implementations are simple facade which creates a corresponding Core
message, sent it to a well-known "management address" and wait for the reply
(see top class ).
We use a INVM connector to connect to the server (since the core message is sent from
*inside* the server).
To make the code more generic, JMX operation invocations *always* goes through a
replicated core message wether the node is replicated or not.
This implies that the server *must* always have a INVM acceptor ready to accept the core
message from the management code.
I hesitated to have a switch for every management operation implementation (if the node is
not replicated, invokes directly, else use a replicated core message) but I stick to a
single implementation (INVM connection code path is straightforward enough) to make the
code more uniform.
For now, I have not changed the server configuration. This means that the user must
explicitely add a INVM acceptor if he wants to be able to manage the server using JMX.
To make it more user-friendly, I'll add the creation of the INVM acceptor when the
user configuration set jmx-enable to true.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4195005#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...