You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Rob Davies (JIRA)" <ji...@apache.org> on 2009/05/23 08:33:51 UTC

[jira] Assigned: (AMQ-2134) Multicast transport does not work when for a consumer or producer

     [ https://issues.apache.org/activemq/browse/AMQ-2134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-2134:
-------------------------------

    Assignee: Rob Davies

> Multicast transport does not work when for a consumer or producer
> -----------------------------------------------------------------
>
>                 Key: AMQ-2134
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2134
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: Using JMS in a spring framework
>            Reporter: Jaiganesh Mathaiyan
>            Assignee: Rob Davies
>            Priority: Critical
>             Fix For: 5.3.0
>
>
> I am creating a broker with just a multicast transport connector. Code snippet below.
>             try{
> 			broker = new BrokerService();
> 		// configure the broker
> 			broker.setBrokerName("ism");		
> 			broker.addConnector("multicast://224.1.2.3:6255?loopBackMode=true");			
> 			broker.start();
> 		}catch(Exception ex){
> 			ex.printStackTrace();
> 		}
> Now I try creating a subscriber on the broker  using the following broker url "multicast://224.1.2.3:6255?loopBackMode=true&amp;trace=true"
> The connection never succeeds and the following message is repeatedly thrown.
> DEBUG o.a.a.t.reliable.ReliableTransport - Still waiting for response on: multicast://224.1.2.3:6255?loopBackMode=true&trace=true@0 to command: ConnectionInfo {commandId = 1, responseRequired = true, connectionId = ID:JMATHAIY-WXP01-3697-1235159811727-2:0, clientId = ID:JMATHAIY-WXP01-3697-1235159811727-3:0, userName = null, password = null, brokerPath = null, brokerMasterConnector = false, manageable = true, clientMaster = true} sending replay message
> 11:58:44.270 [http-8080-1] DEBUG o.a.a.t.TransportLogger.Connection:1 - SENDING: ReplayCommand {commandId = 25, firstNakNumber = 1, lastNakNumber = 1}
> The reason to believe why this is a bug: 
> I did some sniffing on the network and found that the igmp multicast join request for the broker never came through. Some digging into the code revealed that the MulticastTransport was never created in the first place. UdpTransport was being created even though the transport was multicast. The following change in the doBind method on the UdpTransportFactory.java fixed this problem.
>             //int port = location.getPort();
>             //OpenWireFormat openWireFormat = asOpenWireFormat(wf);
>             //UdpTransport transport = new UdpTransport(openWireFormat, port);
>             log.debug("Putting a custom fix for Multicast problem");
>             UdpTransport transport = (UdpTransport)createTransport(location, wf);
> Now I was able to see the broker joining the multicast group, but the multicast socket gets timed out after every 5000 ms . I figured out that this is a default setting in the MulticastTransport.java (DEFAULT_IDLE_TIME) and tried changing it to 0 (open socket forever). Note : There is no way to specify this value from the uri. (or I was not able to figure that out).
> After the above two changes, I could get publisher and consumer connect to the broker and pass on the messages.
> Please review the above changes and let me know if this has any other side effects or if any better fix is possible.
> Background : We are actively testing out the various transports to use ActiveMQ in our application and multicast is very essential. Infact we want to integrate jgroups and I am not having any success there. Is jgroups really integrated in 5.2 ?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.