[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: JBMESSAGING-1457 - Unexistent destinations on both nodes
clebert.suconic@jboss.com
do-not-reply at jboss.com
Wed Jan 7 15:22:32 EST 2009
Howard,
I'm not sure if the current fix is correct.
on
You should just ignore the Queue.. yes.. but on MessagingPostOfficeImpl::performFailover:
}
| else
| {
| //Cannot failover if there is no queue deployed.
|
| log.warn("Cannot failover " + queue.getName() + " since it does not exist on this node. " +
| "You must deploy your clustered destinations on ALL nodes of the cluster");
| }
|
I don't think deleteBindingFromStorage(queue) should be called. As merge didn't work because of the warning, we need to make sure the data will be received when the failed server starts.
//Delete from storage
|
| //Note we must do this *after* we have done any merge.
| //This is because if we did it first, then the merge failed, we'd be left with the old channel deleted
| //but the messages would have still be in the old channel
| //meaning they would have disappeared from the users point of view and it would involve manual
| //database intervention to correct it
| //See http://jira.jboss.com/jira/browse/JBMESSAGING-1113
|
| deleteBindingFromStorage(queue);
|
| log.debug(this + " deleted binding for " + queue.getName());
|
| // Note we do not need to send an unbind request across the cluster - this is because
| // when the node crashes a view change will hit the other nodes and that will cause
| // all binding data for that node to be removed anyway.
| }
|
So, you should improve one of the tests to validate the failed queue still have data when everything is restarted, and move the deletebindingFromStorage be called right after merge.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4200177#4200177
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4200177
More information about the jboss-dev-forums
mailing list