You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by "Lance D." <la...@gmail.com> on 2013/03/03 17:14:07 UTC

Client-side Failover Logic

Howdy all!


I've got a quick question about the failover behavior of the JAVA API
before I file a bug report (just to make sure it's not just something I'm
doing).


Mundane details first:  QPID 0.16, AMQP 0-10; I have 2 brokers running on 2
different servers; the brokers are not clustered.  I'm attempting to write
code that, on failure of one broker, automatically swaps over to the other
broker (failover).


I'm unable to failover due to a timeout exception in the Session class
(org.apache.qpid.transport).  When the Session tries to resume, it will
null the 'resumer' once it has finished its resuming tasks.  When waiting
for the commands lock in the invoke method, the code waits for the default
60 seconds and then jump down into the RESUMING switch case.  At which
point, since the resumer thread is null, a SessionException is thrown,
causing failover to not finish.



It looks as though it is expecting things to happen on separate threads,
however, all of the reconnect logic is occurring on the IOReceiver thread
(and according to documentation from the FailoverHandler documentation,
that is not good).


Am I doing something wrong, or is this a real bug?


Thanks again for your continuing help!

-Lance

Re: Client-side Failover Logic

Posted by Oleksandr Rudyy <or...@gmail.com>.
Hi Lance,
Could you please provide more details about what you are doing?
What brokers do you use? java or c++
What is your connection URL?
Have you tried to reproduce the issue with the latest version of client?

You can get 0.22 snapshot client build from:

https://repository.apache.org/content/repositories/snapshots/org/apache/qpid/qpid-client/0.22-SNAPSHOT/
https://repository.apache.org/content/repositories/snapshots/org/apache/qpid/qpid-common/0.22-SNAPSHOT/

How often this issue occurs for you?
Any hint how to reproduce?

Kind Regards,
Alex

On 3 March 2013 16:14, Lance D. <la...@gmail.com> wrote:
> Howdy all!
>
>
> I've got a quick question about the failover behavior of the JAVA API
> before I file a bug report (just to make sure it's not just something I'm
> doing).
>
>
> Mundane details first:  QPID 0.16, AMQP 0-10; I have 2 brokers running on 2
> different servers; the brokers are not clustered.  I'm attempting to write
> code that, on failure of one broker, automatically swaps over to the other
> broker (failover).
>
>
> I'm unable to failover due to a timeout exception in the Session class
> (org.apache.qpid.transport).  When the Session tries to resume, it will
> null the 'resumer' once it has finished its resuming tasks.  When waiting
> for the commands lock in the invoke method, the code waits for the default
> 60 seconds and then jump down into the RESUMING switch case.  At which
> point, since the resumer thread is null, a SessionException is thrown,
> causing failover to not finish.
>
>
>
> It looks as though it is expecting things to happen on separate threads,
> however, all of the reconnect logic is occurring on the IOReceiver thread
> (and according to documentation from the FailoverHandler documentation,
> that is not good).
>
>
> Am I doing something wrong, or is this a real bug?
>
>
> Thanks again for your continuing help!
>
> -Lance

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org