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

Robbie Gemmell resolved QPID-3220.
----------------------------------

    Resolution: Fixed

Patch applied

> Specifying connection url option failover='singlebroker' causes the wrong 
> failover policy to be used
> ----------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3220
>                 URL: https://issues.apache.org/jira/browse/QPID-3220
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.5, 0.6, 0.7, 0.8, 0.9, 0.10
>            Reporter: Keith Wall
>            Assignee: Robbie Gemmell
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: 
> 0001-QPID-3220-Specifying-connection-url-option-failover-.patch
>
>
> If the user specifies the option failover='singlebroker' in the connection 
> URL, a coding error in FailoverPolicy.java means that the client actually 
> elects to use FailoverRoundRobinServers policy rather than 
> FailoverSingleServer.
> For example, the following URL will cause the client to use the round-robin 
> policy. 
> {code}
> amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672?retries='50'&connectdelay='5000''&failover='singlebroker'
> {code}
> Furthermore, as the logic FailoverRoundRobinServers.getNextBrokerDetails 
> means that if the roundrobin policy is used with a brokerlist containing *one 
> broker*, connectdelay is never applied, this defect also means that if a user 
> passes failover='singlebroker' with a broker list containing one entry, 
> connectdelay is ignored.   This can give the appearance that server 
> reconnection is broken as the client can spin through thousands of retries 
> before then broker has chance to restart.
> To workaround this issue, the user can omit the failover option from the URL 
> and let the defaulting within FailoverPolicy class choose 
> FailoverSingleServer if the brokerlist contains one entry, or 
> FailoverRoundRobinServers if the list contains more than one.
> Client will default to singlebroker policy:
> {code}
> amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672'
> {code}
> Client will default to roundrobin policy:
> {code}
> amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672;tcp://localhost:5672'
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to