[
https://jira.jboss.org/jira/browse/JGRP-1090?page=com.atlassian.jira.plug...
]
Bela Ban commented on JGRP-1090:
--------------------------------
Maybe an Event.MSGLIST type is needed, which can pass multiple incoming messages up the
stack. This requires changes to several protocols though, especially if we want to extend
this to all protocols, and to sending of messages as well.
Bundle OOB messages
-------------------
Key: JGRP-1090
URL:
https://jira.jboss.org/jira/browse/JGRP-1090
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.10
When message bundling is enabled, we queue *regular* messages until max_bundle_size has
been reached or max_bundle_timeout has exceeded.
The problem is that - when sending OOB (as opposed to regular) messages - they're
*not* queued. This means the OOB message is possibly received *before* the regular
messages and thus causes retransmission !
E.g. we send regular message 1-10, then OOB message 11.
Say 1-3 are sent immediately (because the bundle timeout kicked in or the size was
exceeded). Messages 4-10 are queued and sent later. Message 11 is sent immediately.
On the receiver side, message reception could be for example: 1-3, 11, 4-10
When OOB message 11 is received, the receiver asks for retransmission of messages 4-10 !
This is not incorrect, but causes a lot of unneeded retransmissions !
public static void main(String[] args) throws Exception {
JChannel c1=new JChannel("/home/bela/fast.xml");
c1.connect("bla3");
JChannel c2=new JChannel("/home/bela/fast.xml");
c2.connect("bla3");
for(int i=1; i <= 20; i++) {
c1.send(null, null, "hello-" + i);
}
Message oob_msg=new Message(null, null, "oob msg");
oob_msg.setFlag(Message.OOB);
c1.send(oob_msg);
Util.sleep(20000);
Util.close(c2, c1);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira