[ 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