I have two .net applications comunicating with each other through two RabbitMq queues. It works like this:

The Application1 publishes the message in a Queue that I will name it "QueueHot", and identifies that this very queue that he had just publish the message has no listener, then it initializes another .net Application (Application2), passing the "QueueHot" as a parameter. Then the Application2 starts, and it begins to listen to the QueueHot, then it manages to get the message from that Queue. After the Application2 deals with the message processing, it then tries to publish the result of the processing in another Queue ("QueueCold"), that the Application1 is listening. But the problem is that, the Application2 is not able to publish the message, but if I kill the Application1 process, the Application2 then is able to publish, but here is the interessing thing, the message that the Application2 just published stays as Unacked, even though I had just kill the Application1, which was, in theory, the only listener. So if I start the Application1 again, he is not able to catch the message, as it is Unacked, but if I kill the Application2, the the message is released and the Application1 is finally able to get the message.

This problem happens only in my machine, cause other co-workers starts the same applications, pointing to the same RabbitMq broker, and the process runs fine, but in my case I have to do this manual job of killing the application process on task monitor.

I was using the same user in both of the application, and even after changing the user of one of the apps the problem still persists.

I assume that it has to do with some configuration of my machine, but it's really obscure to me.

0 Answers