Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jms-dev] Question about Exception Listener versus disconnects...

I need help to clarify some text on the specification regarding
Exception Listeners..


We have a situation where my JMS Implementation is making a blocked
call to the servers. (say, for example a producer.send that must wait
for a return from the server).

We may have a situation where a serious connection issue would cause
the blocking call to time out. Which would cause an exception throw to
the caller, and also the exception listener called.

We recently changed the blocking call to throw an exception
(TimeoutError) and also call the ExceptionListener asynchronously,
since that is a serious connection issue. This is the change in
question, that would lead to the exceptionlistener call.

https://github.com/apache/activemq-artemis/blob/ccc74a2313a543f71dbb6e64a4808347e2e0e36e/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ChannelImpl.java#L529-L532


Some of our developers think this is breaking the JMS spec. More
specifically on this text:

"The exceptions delivered to ExceptionListener are those that have no
other place to be reported. If an exception is thrown on a JMS call
it, by definition, must not be delivered to an ExceptionListener"

I myself don't think we are breaking the spec, as this represents a
serious connection issue that should be reported to the exception
listener. In short I think this is an implementation detail that
should not be a concern.

Can you guys help me to clarify this rule? Perhaps enhance the text
here to make the intention clear?



Back to the top