> Is the consumer connection factory configured to retry connections after
a failure?

No.

> For JMS, the best way for an application to detect a lost connection is
via the ConnectionListener.

Did you mean ExceptionListener? If so, that's only relevant for connection
problems which is not the issue here. We're concerned here with *session*
loss, not connection loss.


Justin

On Wed, Jun 16, 2021 at 10:45 AM Arthur Naseef <a...@amlinv.com> wrote:

> Is the consumer connection factory configured to retry connections after a
> failure?  If so, in the test, is there some additional step that prevents
> the client from reconnecting?
>
> For most applications, I recommend that consumers try indefinitely without
> interrupting the application.  Any logic placed in the application to
> handle the situation will be extra complexity with little benefit since the
> libraries already do the work of reconnecting.
>
> For JMS, the best way for an application to detect a lost connection is via
> the ConnectionListener.
>
> With that said, most applications just want to be as durable as possible,
> and monitoring is the best way to detect and correct such a scenario.
>
> Hope this helps.
>
> Art
>
>
>
> On Wed, Jun 16, 2021 at 8:26 AM <kst...@gmail.com> wrote:
>
> > Thanks, opened: https://issues.apache.org/jira/browse/ARTEMIS-3351
> > Closing the connection does throw an exception as expected, so the issue
> > is related to closing the session.
> >
> > > This looks like a bug to me. Can you open a Jira [1]?
> > > In the meantime it looks like you can close the *consumer* via the web
> > console instead of the session. That should trigger an exception on the
> > client as expected.
> > > Justin
> >
> > On Wed, Jun 16, 2021 at 7:45 AM <kst...@gmail.com> wrote:
> >
> > > Hello,
> > >
> > > I am using Artemis 2.17.0. I am trying to see how to detect a closed
> > > session from a client consumer. My use case is this:
> > >
> > > *       Create a consumer (using JMS or core, same behavior)
> > > *       I use a thread to loop indefinitely using
> consumer.receive(1000);
> > > *       I create a producer and send messages in another thread.
> > > *       Consumers receive messages and keep looping as expected
> > > *       I am using the Management console, go to tab Sessions, locate
> the
> > > consumer sessions and hit the 'Close' button to close the sessions.
> > > When I do this, my consumer block indefinitely in the receive method
> > > and there is no exception or another way to unblock them.
> > >
> > >
> > >
> > > The behavior is the same if I use receiveNoWait(); also the same if I
> > > use
> > > consumer.setMessageListener() to be notified.
> > >
> > > In short, after I close the sessions from the management console, I
> > > have no way whatsoever to find out from the consumer that this session
> > > is now
> > > closed: it seems that the receive() methods there block indefinitely
> > > with no exception being thrown.
> > >
> > >
> > >
> > > Thanks for any help,
> > >
> > > Costas
> > >
> > >
> >
> >
>

Reply via email to