activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <>
Subject Re: Handling of RuntimeExceptions in method
Date Fri, 30 May 2008 11:35:09 GMT
Hi Kai,

I agree with what you say - but the original reason we passed  
exceptions is that some developers required to know if there was a  
problem by this mechanism. ActiveMQ users in general don't try to  
reconnect on a Connection.onException() - because  they typically use  
a fault tolerant failover connection (now the default transport).

Its to support these users I'm suggesting that we add a supplementary  
method to call an exception - and use Connection.onException() for its  
proper purpose :) If you don't register an exception listener on this  
new method - it won't know anything about it - the exception will just  
get logged - which handles your case as well



On 30 May 2008, at 12:11, khudalla wrote:

> Rob,
> thanks for your explanations. However, even if we had such an  
> additional
> listener for this kind of exception, what would such a listener be  
> supposed
> to do about it? The problem remains the same, i.e. we still do not  
> know, how
> to handle the problem properly since it can have arbitrary reasons.  
> In this
> particular case however, I don't see how "panicking" (i.e. re- 
> connecting to
> the broker) would be of any help. Since the exception listener  
> registered on
> the connection is the one registered by the RA (and the
> method can be sure of that since the run()  
> method is
> used by the RA only), I think we could just log the error and then  
> silently
> ignore the exception, don't you think? In other cases (i.e. in the  
> rest of
> the client code) the onAsyncException() strategy may be appropriate,
> however.
> Kai
> rajdavies wrote:
>> Hi Kai,
>> Thanks for the feedback and good description of the problem! The
>> problem is that the only mechanism to notify of an internal async
>> exception is through the Connection Exception listener - and and we
>> use this for both internal client exceptions - and actual transport
>> exceptions. However, I agree that this is erroneous - according to  
>> the
>> JMS API - onException() should only be called if there is a serious
>> problem with the Connection object itself.
>> We do call this from multiple places in the client side code -
>> normally to notify that there is a runtime exception from the
>> container (as in this case) or the application when consuming a
>> message asynchronously.
>> I think we need to add an additional method on the Connection for
>> registering an Exception listener for general client/application
>> exceptions
>> cheers,
>> Rob
> -- 
> View this message in context:
> Sent from the ActiveMQ - Dev mailing list archive at

View raw message