> Is there a more acceptable way to alert the broker that the listener is
still alive and well but just being patient?

Yes. STOMP already has this via heartbeating [1]. Does your Python client
support heartbeating? If so, are you configuring it?


Justin

[1] https://stomp.github.io/stomp-specification-1.2.html#Heart-beating

On Thu, Jun 23, 2022 at 7:56 AM Richard Bergmann
<rbergm...@colsa.com.invalid> wrote:

> I migrated my application from Classic to Artemis, and now my listeners
> are being summarily disconnected by the broker on a TTL timeout.
>
> My use case is that I have listeners (subscribers) that are launched as a
> service and patiently wait (could be for days!!!!) for messages to arrive
> on a work queue.  Furthermore, the work to be done can take perhaps up to
> an hour . . . well past the default TTL timeout of 60 seconds.  This was
> not an issue in Classic, but certainly is in Artemis.
>
> My solution was to bump the STOMP acceptor timeout to something
> stratospheric (e.g., 10,000,000,000), but this just feels . . . icky!
>
> I've seen a number of threads recommend doing a "connect and subscribe"
> loop in the on-disconnect event, but I have a bad feeling about this if the
> listener is working on a message that is either NACKed on the disconnect,
> or the ACK fails because the work was completed between the disconnect and
> the reconnect.  In other words, this also feels icky!
>
> Is there a more acceptable way to alert the broker that the listener is
> still alive and well but just being patient?  For example, is there a NOOP
> call that can be made to the broker every, say, 30 seconds, to say "I'm
> still here!  Please don't kill me!!!"?  Since the listener may be in the
> throes of a long-running process, I can see having the listener spawn a
> thread that sends the "I'm alive!" message every 30 seconds, then,
> terminate the thread on a successful shutdown.  That way the broker can
> kill legitimately "dead" listeners by keeping the reasonable 60 second
> timeout, but not assassinate my legitimate patient listeners.
>
> Thank you!  :)
> ________________________________
> The information contained in this e-mail and any attachments from COLSA
> Corporation may contain company sensitive and/or proprietary information,
> and is intended only for the named recipient to whom it was originally
> addressed. If you are not the intended recipient, any disclosure,
> distribution, or copying of this e-mail or its attachments is strictly
> prohibited. If you have received this e-mail in error, please notify the
> sender immediately by return e-mail and permanently delete the e-mail and
> any attachments.
>
>
> COLSA Proprietary
>

Reply via email to