On Tue, Sep 22, 2009 at 8:58 AM, Martin Ritchie <[email protected]> wrote:
> 2009/9/22 Rajith Attapattu <[email protected]>:
>> On Tue, Sep 22, 2009 at 7:13 AM, Martin Ritchie <[email protected]> wrote:
>>> Hi Rajith,
>>> Will this not cause both the 0-8 and 0-10 code path to throw a
>>> NullPointer if none of the brokers are available on startup.
>>> Is the FailoverPolicy cycle count not what stops the looping?
>>>
>>> Regards
>>
>> Hi Martin,
>>
>> If the initial broker is not available it will throw
>> ConnectionException. My title for the JIRA is a bit misleading here.
>> If the initial connection is successful and if it gets disconnected
>> before it gets a chance to update its membership list via the failover
>> exchange this looping can happen.
>>
>> The 0-8 codepath and a non-clustered 0-10 codepath should not be using
>> failover exchange method.
>> Perhaps we should add a check for this??
>>
>> This modification is done only for the FailoverExchange method where
>> cycle count is not applicable.
>> The failover exchange maintains a dynamic list of brokers based on the
>> updates send by the failover exchange it is subscribed to.
>> It will continue until total cluster failure.
>>
>> Regards,
>>
>> Rajith
>
> I see the dynamic list bits now but I'm still don't see how returning
> null is checked? In the failover mode the returned value from
> getNextBroker is passed straight in to makeBrokerConnection which
> assumes the BrokerDetails is not null.
>
> I must be missing something.
>
> Martin
In the initial connection it checks if brokerDetails is null
while (!_connected && retryAllowed && brokerDetails != null)
and during failover we do the following.
public boolean attemptReconnection()
{
BrokerDetails broker = null;
while (_failoverPolicy.failoverAllowed() && (broker =
_failoverPolicy.getNextBrokerDetails()) != null)
On a separate note, I appreciate your questions. It is best some sort
of review is done for most of the commits.
If you aren't clear on something please don't hesitate to ask as it
could potentially be an issue.
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project: http://qpid.apache.org
>> Use/Interact: mailto:[email protected]
>>
>>
>
>
>
> --
> Martin Ritchie
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project: http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]