I'm not sure that anything you've described clearly indicates that the problem was that ActiveMQ failed to deliver the messages, rather than that the Python client failed to ack the messages.
Are you able to reproduce the problem reliably enough to be able to use Wireshark or similar to analyze the network traffic and see whether any messages are not getting acked? Knowing that will at least help us figure out which codebase (broker or client) to look in. Tim On Thu, Jun 27, 2019, 4:31 PM jerrium <sonnyli...@gmail.com> wrote: > Hi! > > I'm currently having issues with Python STOMP consumers hanging when > sending > a lot of messages. > > In my application, I specify a number of queues to create. For each queue, > I > create a connection for each producer and consumer. Each producer produces > a > fixed number of messages and consumers consume an equal amount of messages. > There is a 1:1 mapping between producers and consumers. It seems to work > fine until some consumers stop receiving messages. They will just hang on > sock.recv() in python. > > When I use the JMX JConsole, I find that InflightCount is -1, and > MessageCountAwaitingAcknowledge is equal to the number of messages not > consumed. This seems to suggest that ActiveMQ has sent the messages. But > the > consumers don't get any messages. > > I've tried with and without message persistence, with and without STOMP > heartbeats, lowering prefetching to around 3. Also auto acking and client > acking. > > The only thing that seems to work is setting TCP socket timeouts in python, > disconnecting and then reconnecting. The consumer starts to get messages > afterwards. I wanted to see if there might be any reason for this. Does > anyone have any idea? I'd really appreciate it! > > Configuration details: > - ActiveMQ 5.15.8 > - Java SE 8 > - Python stomp.py library, v4.1.23 (currently latest) > > > > > -- > Sent from: > http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html >