Bela can comment better as to whether not getting one last view before you leave is a flaw
or intended behavior.
Looks like when a DISCONNECT comes down the channel, GMS sends a LEAVE_REQ to the coord,
who, before sending out a new view, replies with a LEAVE_RSP. Upon receipt of the
LEAVE_RSP, ParticipantGmsImpl sends a DISCONNECT_OK up to the app, and then passses the
DISCONNECT down the channel. When the DISCONNECT gets to NAKACK, it puts it into a state
where no further messages are passed up. Thus any subsequent view sent by the coord is
dropped.
Any change to this would have to watch out for breaking this bit in JChannel.up():
case Event.VIEW_CHANGE:
| my_view=(View)evt.getArg();
|
| // crude solution to bug #775120: if we get our first view *before*
the CONNECT_OK,
| // we simply set the state to connected
| if(connected == false) {
| connected=true;
| synchronized(connect_mutex) { // bug fix contributed by Chris
Wampler (bug #943881)
| connect_ok_event_received=true;
| connect_mutex.notify();
| }
| }
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3977624#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...