"clebert.suconic(a)jboss.com" wrote : Just for reference, this method from
DefaultClusteredPostOffice is going to be the heart of serverSide failover:
|
|
| | public void failOver(int nodeId) throws Exception
| | {
| | log.info("Preparing failover against node " + nodeId);
| | Map subMaps = (Map)nameMaps.get(new Integer(nodeId));
| | ArrayList namesToRemove = new ArrayList();
| | for (Iterator iterNames =
subMaps.entrySet().iterator();iterNames.hasNext();)
| | {
| | Map.Entry entry = (Map.Entry)iterNames.next();
| | Binding binding = (Binding )entry.getValue();
| | if (binding.getQueue().isClustered())
| | {
| | ClusteredQueue queue = (ClusteredQueue) binding.getQueue();
| | if (!queue.isLocal())
| |
|
There should be no need to check if the queue is clustered and not local, they will
*always* be clustered and not local in the name map for a remote node, so this is
redundant.
"clebert" wrote :
|
| |
| | {
| | namesToRemove.add(entry);
| | }
| | }
| | }
| |
| | for (Iterator iterNames = namesToRemove.iterator();iterNames.hasNext();)
| | {
| | Map.Entry entry = (Map.Entry)iterNames.next();
| | DefaultBinding binding = (DefaultBinding)entry.getValue();
| |
|
The correct type is Binding, not DefaultBinding?
"clebert" wrote :
|
| | RemoteQueueStub stub = (RemoteQueueStub)binding.getQueue();
| | this.removeBinding(nodeId,(String)entry.getKey());
| |
|
The remove needs to be broadcast across the cluster so other nodes can remove the binding
too
"clebert" wrote :
|
| | Binding newBinding =
this.createBinding(this.nodeId,nodeId,binding.getCondition(),stub.getName(),stub.getChannelID(),stub.getFilter(),stub.isRecoverable());
| | LocalClusteredQueue clusteredQueue = (LocalClusteredQueue
)newBinding.getQueue();
| | clusteredQueue.deactivate();
| | clusteredQueue.load();
| | clusteredQueue.activate();
| | addBinding(newBinding);
| |
|
Isn't there going to be a problem creating two bindings with the same name?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3981969#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...