[
https://issues.jboss.org/browse/JGRP-1332?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1332:
--------------------------------
We don't support a scenario in MuxRpcDispatcher, where we don't have the same set
of IDs on every node, e.g. A has 1,2,3, B has 1,4 and C has 2,4. All 3 nodes need to have
1,2,3.
MuxDispatcher was written for managing multiple services in JBoss AS, all running on the
same channel. It is a descoped version of the old Multiplexer, and we don't support
'service views', which is having different services on different nodes.
If you want something like this, you have to write your own multiplexer...
MuxRpcDispatcher: use of topics disturbs invocations
----------------------------------------------------
Key: JGRP-1332
URL:
https://issues.jboss.org/browse/JGRP-1332
Project: JGroups
Issue Type: Bug
Affects Versions: 2.12.1
Reporter: Benoit Leblanc
Assignee: Bela Ban
Fix For: 3.1
Attachments: Launcher.java, RpcTopic-1ToTopic_2_NoMuxUpHandler.log,
RpcTopic-1ToTopic_2_WithMuxUpHandler.log
Scenario 1 : Let's A and B be 2 jgroups members connected to the same channels
"rpc". Member A uses an
MuxRpcDispatcher with topic id 1 and Member B uses an MuxRpcDispatcher with different
topic id, 2 for example. Channel configuration file is « udp.xml ».
When Member A sends a multicast rpc call (mode = GET_ALL) with no filter (null), I
observed that server object on member B was invoked although it doesn't have the same
topic as caller from member A.
To better observe invocations, I deployed the attached sample program (Launcher.java) on
different machine (member A hosted by 192.168.46.36 and member B hosted by 192.168.46.38)
and disable local invocation on channel ( channel.setOpt(Channel.LOCAL, false)). I also
use a kind of jgroups sniffer (on host of member B) that logs members exchange. See
enclosed file RpcTopic-1ToTopic_2_NoMuxUpHandler.log). Note that topic should be
different, so you need to modify sample code before execution on member A or B.
Scenario 2: roughly, the same as the previous one. Just set an UpHandler to the channel
:
channel.setUpHandler(new MuxUpHandler());
I observed that:
- Object server on member B wasn't invoked (expected behavior).
- Member B didn't respond at all. May be it should send back an ack. See
RpcTopic-1ToTopic_2_WithMuxUpHandler.log file.
- The invoker (or caller) runs until the timeout kicks in. Or block for ever if timeout =
0. Execution shouldn't runs out "immediately" ?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira