Dear all, I'm trying to use a Blocking Connection in the python version of Qpid Proton, in order to try to solve the problem of getting data from an external source and sending it inside AMQP messages only when it is available. However, even if I explicitly set a low heartbeat value when creating a new BlockingConnection(), I often get the following error:
Traceback (most recent call last): File "ConnectionExceptionIssue.py", line 29, in <module> AMQPsend("192.168.1.2:5672/topic://test.activemq.topic.001") File "ConnectionExceptionIssue.py", line 27, in AMQPsend sender.send(req); File "/home/fullsuper/anaconda3/envs/tornado-qpid/lib/python3.8/site-packages/proton/_utils.py", line 119, in send self.connection.wait(lambda: _is_settled(delivery), msg="Sending on sender %s" % self.link.name, File "/home/fullsuper/anaconda3/envs/tornado-qpid/lib/python3.8/site-packages/proton/_utils.py", line 486, in wait raise ConnectionException( proton._exceptions.ConnectionException: Connection amqp://192.168.1.2:5672 disconnected: Condition('amqp:resource-limit-exceeded', 'local-idle-timeout expired') To better analyze the problem, I tried writing this sample code: https://pastebin.com/R8uJALAQ The code should ideally send an "Hello World!" message every second to an external broker. I noticed that for higher heartbeat values (e.g. 7.5 seconds), the error does not occur, while if I set a lower value (e.g. 1 second), I always get this error. Do you know why? Is it some sort of bug or is there something wrong in my sample code? Thank you very much, Francesco Raviglione