[jboss-jira] [JBoss JIRA] Commented: (JGRP-444) RequestCorrelator does not respect FLUSH.FlushHeader.BYPASS_FLUSH
Michael Newcomb (JIRA)
jira-events at lists.jboss.org
Thu Sep 6 14:37:11 EDT 2007
[ http://jira.jboss.com/jira/browse/JGRP-444?page=comments#action_12375757 ]
Michael Newcomb commented on JGRP-444:
--------------------------------------
Well, the member leaving is the one who wants to push his data out and he is no longer a member if/when he leaves. So, he needs to push his data back out to the grid before he actually leaves. That's why the leaving member, starts a flush, pushes his data (and tells everyone to no longer send him data), stops the flush and then leaves.
The leaving node needs to be sure the data is received so, a request/response is used and the message is sent through a MessageDispatcher. However, the channel will hold the message because a flush is in progress. I can get around that by adding the FLUSH_BYPASS to the message but when the RequestCorrelator gets the request and sends the response, each of the channels hold the message because a flush is in progress.
So, RequestCorrelator would need to respect messages that are FLUHS_BYPASSABLE...
I may not be understanding your suggestion about using block()...
> RequestCorrelator does not respect FLUSH.FlushHeader.BYPASS_FLUSH
> -----------------------------------------------------------------
>
> Key: JGRP-444
> URL: http://jira.jboss.com/jira/browse/JGRP-444
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 2.5
> Environment: 2.5 alpha 2
> Reporter: Michael Newcomb
> Assigned To: Vladimir Blagojevic
> Fix For: 2.7
>
>
> private void handleRequest(Message req, Header hdr)
> {
> ...
> rsp=req.makeReply();
> if(rsp_buf != null)
> rsp.setBuffer(rsp_buf);
> rsp_hdr=new Header(Header.RSP, hdr.id, false, name);
> rsp.putHeader(name, rsp_hdr);
> // *************** patch *****************
> // can't check for FLUSH.FlushHeader.BYPASS_FLUSH because it has package protection, so just check for FLUSH header
> //
> if (req.getHeader(org.jgroups.protocols.pbcast.FLUSH.NAME) != null)
> {
> rsp.putHeader(org.jgroups.protocols.pbcast.FLUSH.NAME,
> new org.jgroups.protocols.pbcast.FLUSH.FlushHeader(org.jgroups.protocols.pbcast.FLUSH.FlushHeader.FLUSH_BYPASS));
> }
> // *************** patch *****************
> if(log.isTraceEnabled())
> log.trace(new StringBuffer("sending rsp for ").append(rsp_hdr.id).append(" to ").append(rsp.getDest()));
> ...
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list