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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...