activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (JIRA)" <>
Subject [jira] Assigned: (AMQ-2134) Multicast transport does not work when for a consumer or producer
Date Sat, 23 May 2009 06:33:51 GMT


Rob Davies reassigned AMQ-2134:

    Assignee: Rob Davies

> Multicast transport does not work when for a consumer or producer
> -----------------------------------------------------------------
>                 Key: AMQ-2134
>                 URL:
>             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://");			
> 			broker.start();
> 		}catch(Exception ex){
> 			ex.printStackTrace();
> 		}
> Now I try creating a subscriber on the broker  using the following broker url "multicast://;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://
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
> 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 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
(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.

View raw message