mcwolf created ARTEMIS-5169:
-------------------------------

             Summary: Closing JMSContext on failed connection with 
reconnectAttempts = -1
                 Key: ARTEMIS-5169
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5169
             Project: ActiveMQ Artemis
          Issue Type: Bug
    Affects Versions: 2.38.0, 2.31.0
         Environment: 
{{java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
connectionFactory.ConnectionFactory=tcp://192.168.0.1:1883?retryInterval=200&reconnectAttempts=-1}}
            Reporter: mcwolf


 I have a Java SE application (jms client) that works with Artemis ActiveMQ. In 
the {{ActiveMQInitialContextFactory}} configuration, I have set 
{{reconnectAttempts}} = {{-1}} so that, when the connection to the server is 
dropped, the connection is automatically reestablished.

Everything works fine and the connection is restored as expected. However, I 
noticed that when I try to call {{JMSContext::stop()}} / 
{{JMSContext::close()}} while the connection is broken (i.e., the client is in 
reconnect mode), the call blocks until the client manages to connect.

If I stop the application without calling {{JMSContext::stop()}} / 
{{JMSContext::close()}} when the connection is broken, it stops cleanly 
(apparently the implementation uses daemon threads) but this approach does not 
work for me, the service is used in a dialog and I want to release the occupied 
resources when it is closed.
{code:java}
ConnectionFactory cf = (ConnectionFactory) 
initialContext.lookup("ConnectionFactory");

JMSContext jmsContext = cf.createContext();
jmsContext.setExceptionListener(this::handleJMSException);

Topic topic = jmsContext.createTopic("topicName");
jmsContext.createConsumer(topic).setMessageListener(this::onMessage);

...

setOnCloseRequest(dialogEvent -> {
    if(jmsContext != null) {
        jmsContext.close(); 
    }
});
{code}
artemis-jms-client: 2.31.0 and 2.38.0

OS: Ubuntu 24.04.1 LTS
Java: OpenJDK 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to