You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (Resolved) (JIRA)" <ji...@apache.org> on 2011/10/13 22:23:11 UTC

[jira] [Resolved] (AMQ-3542) Using failover: with static discovery in a network connector to choose from a master/slave tuple leads to hangs and invalid states

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

Gary Tully resolved AMQ-3542.
-----------------------------

    Resolution: Fixed

fix and test in: http://svn.apache.org/viewvc?rev=1183062&view=rev

{{static:(failover:(a,b)?maxReconnectAttempts=0)}} now works reliably to choose a working url from (a,b) and report failures without trying to reconnect/failover. The network connector then gets to recover using its stop/restart logic.
This is a usage pattern for {{failover:}} where it is used solely to pick a valid broker url. It does *not* try to recover a failed connection. Network connectors need to manage failed connections themselves b/c they are not simple jms client connections.

Note: this commit changes the default value of maxReconnectAttempts for the failover: transport. A value of 0 now disables reconnections, the default for infinite retries is now -1.
                
> Using failover: with static discovery in a network connector to choose from a master/slave tuple leads to hangs and invalid states
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3542
>                 URL: https://issues.apache.org/jira/browse/AMQ-3542
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Connector, Transport
>    Affects Versions: 5.4.2, 5.5.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>              Labels: failover, master, network, slave
>             Fix For: 5.6.0
>
>
> static discovery will try to connect to all provided urls. When the list is a master/slave pair with shared storage, only one will active, leading log messages indicating repeated failure to connect.
> A potential solution is to use failover: just to pick a url but let it delegate failover to the network connector such that the network bridge is correctly stopped/restarted.
>   {{static:(failover:(tcp://a:61616,tcp://slave:61616)?maxReconnectAttempts=..)}}
> This does not work reliably atm, due to inconsistency in the failover reconnect logic, a network connectors interest in transport interruption/resumption and the lack of thread safety in tracking existing bridges.
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira