You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Shashank Krishnaswamy (Jira)" <ji...@apache.org> on 2021/04/30 21:50:00 UTC

[jira] [Created] (AMQ-8255) Wrong exception propagation on reaching Broker Connection Limit

Shashank Krishnaswamy created AMQ-8255:
------------------------------------------

             Summary: Wrong exception propagation on reaching Broker Connection Limit
                 Key: AMQ-8255
                 URL: https://issues.apache.org/jira/browse/AMQ-8255
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker, JMS client
    Affects Versions: 5.15.13
         Environment: *Broker Details:*
 * Version - 5.15.12
 * Hosted on AWS (Amazon MQ)
 * Instance type - mq.t3.micro with a limit of 100 connections

*Client Details:*
 * Version - 5.15.13
 * Using openwire/jms client
 * running on linux **
            Reporter: Shashank Krishnaswamy


Hi,

I am trying to add exception handling at activemq client side around connection setup. Based on my experiment I found that whenever Broker reaches the maximum connection limit, client receives 3 types of generic exceptions - _SSLHandshakeException, SocketException & TransportDisposedIOException._ These exceptions could occur if there is connectivity issue or [truststore/certificate related issue|http://activemq.2283324.n4.nabble.com/Javax-net-ssl-SSLHandshakeException-td4722408.html]. This has made exception handling impossible as it is not possible to know if the error is retry-able (recoverable) or not.

The ask here is to provide better signal from Broker (or client library) so that application can handle recoverable and non recoverable errors differently.

Suggestion options
 # Let [connection|https://activemq.apache.org/maven/apidocs/org/apache/activemq/ActiveMQConnection.html#start%E2%80%93].start() throw [ExceededMaximumConnectionsException |https://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.html]
 # Let client provide exception via listeners
 ** [Client internal exception listener|https://activemq.apache.org/maven/apidocs/org/apache/activemq/ClientInternalExceptionListener.html]
 ** [Exception listener|https://activemq.apache.org/maven/apidocs/org/apache/activemq/ActiveMQConnection.html#setExceptionListener-javax.jms.ExceptionListener-]
 ** [Transport Listener|https://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/TransportListener.html]
 # Or provide new API to get current number of client connections.

Thanks

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)