qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fraser Adams <fraser.ad...@blueyonder.co.uk>
Subject Re: proton Messenger error handling/recovery
Date Thu, 04 Sep 2014 17:28:14 GMT
On 03/09/14 23:29, Alan Conway wrote:
> On Wed, 2014-09-03 at 20:05 +0100, Fraser Adams wrote:
>> Hello,
>> I've probably missed something, but I don't know how to reliably detect
>> failures and reconnect.
>>
>> So if I sent to an address with a freshly stood up Messenger instance
>> and the address can't be found things aren't too bad and I wind up with
>> an ECONNREFUSED that I could do something with, however if I've been
>> sending messages to a valid address then I kill off the consumer I see a:
>>
>> [0x513380]:ERROR amqp:connection:framing-error connection aborted
>> [0x513380]:ERROR[-2] connection aborted
>>
>> CONNECTION ERROR connection aborted (remote)
>>
>> The thing is that all of these are *internally* generated messages sent
>> to the console via fprintf, so my *application* doesn't really know
>> about them (though I could be crafty and interpose my own cheeky fprintf
>> to intercept them). That doesn't quite sound like the desired behaviour
>> for a robust system?
>>
>>
>> Similarly should I actually trap an error what's the correct way to
>> continue, as it happens currently my app carries on silently doing
>> nothing useful and continuing to do so even when the peer restarts (so
>> there is no magic internal reconnection logic as far as I can see).
>>
>> do I have to do a
>> messenger.stop()
>> messenger.start()
>>
>> cycle to get things going again, I'm guessing so, but I'll like to know
>> what the "correct"/expected way to create Messenger code that is robust
>> against remote failures, as far as I can see there are no examples of
>> that sort of thing?
> I've come up against similar problems, I think it's an area that needs
> some work in Proton. Is anybody already working on/thinking about this
> area?
>
> Cheers,
> Alan.
>
I'd definitely like to know how others deal with this sort of thing.

For info notwithstanding not necessarily being able to trap all the 
errors without being devious around fprintf  (which to be fair works, 
but it's a bit sneaky and if you have multiple Messenger instances won't 
tell you which one the error relates to) but when I do get an error I 
appear to have to start from scratch - in other words:

message.free();
messenger.free();
message = new proton.Message();
messenger = new proton.Messenger();
messenger.start();

If I try to restart the original messenger or use existing queue I get 
no joy. It's not the end of the world but I've no idea what robust 
Messenger code is *supposed* to look like.

Presumably Alan and I aren't the only people who might like to be able 
to trap errors and restart? Or does every one else write code that never 
fails ;->

F.








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


Mime
View raw message