You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Tim Bain (JIRA)" <ji...@apache.org> on 2014/09/24 21:46:33 UTC

[jira] [Commented] (AMQ-3222) Failover and SimpleDiscovery - query parameters getting dropped

    [ https://issues.apache.org/jira/browse/AMQ-3222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14146791#comment-14146791 ] 

Tim Bain commented on AMQ-3222:
-------------------------------

Gary, contrary to your comment on 21/Mar/11, I found that I could only set socketBufferSize for the underlying transports in a static: discovery URI when prefixing with "discovered.", just as you say I would need to do for a failover: discovery URI.

My working URI, for ActiveMQ 5.8.0:
static:(tcp://hostname:port)?discovered.socketBufferSize=2498560

Can you please clarify your comment to explain how query parameters should be applied to the static discovery transport and/or to the underlying discovered transports within those static discovery transports?

> Failover and SimpleDiscovery - query parameters getting dropped
> ---------------------------------------------------------------
>
>                 Key: AMQ-3222
>                 URL: https://issues.apache.org/jira/browse/AMQ-3222
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker, Transport
>    Affects Versions: 5.4.2
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>              Labels: failover, networkBridge, networkConnector
>             Fix For: 5.5.0
>
>
> Using failover with static discovery makes sense in a master slave scenario. 
> With simple static discovery with a pair of uri's, {code}<networkConnector uri="static:(tcp://localhost:32258,tcp://localhost:32259)" />{code} static discovery will continue to try and connect to both uris which leads to repeated logging of failed attempts to bridge to the slave that is not active yet.
> Using failover{code}<networkConnector uri="static:(failover:(tcp://localhost:32258,tcp://localhost:32259)?randomize=false&amp;maxReconnectAttempts=1)"/>{code} improves on this as the failover: transport will be content with just one uri, from the broker perspective there is a single network bridge, rather than two.
> Currently query parameter are not correctly applied.
> Query parameter parsing is problematic when options for a transport are duplicated by the discovery mechanism, e.g: maxReconnectAttempts. There have been some related efforts to resolve this, https://issues.apache.org/jira/browse/AMQ-2981 and https://issues.apache.org/jira/browse/AMQ-2598. Parameters are stripped from transport uris and applied to both the transport and the discovery mechanism. 
> The end result, and fix, is that additional transport options that need to be applied to discovered transport (which typically have all query parameters removed) need to be isolated from normal query parameters using a dot (prefixed with "discovered.") notation. e.g: {code}discovery:(multicast://default)?initialReconnectDelay=100&discovered.closeAsync=false"{code} 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)