|[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