Apache Camel: Reply received for unknown correlationID

前端 未结 4 1960
予麋鹿
予麋鹿 2021-01-25 00:55

There is a middleware in between of two other software components. In the middleware I\'m routing Apache ActiveMQ messages by Apache

4条回答
  •  佛祖请我去吃肉
    2021-01-25 01:09

    When you're using the request/response paradigm (which you're using since you have an InOut in your route), a producer expects to get a responses to each message it sends before it sends the next one. If two producers produce messages that will come to the same response destination and they're watching that destination with the same selector, then it's a race condition whether a message comes to the producer that's expecting it or the other one, and if it goes to the other one, you'll get the message you're seeing in the producer that got the unexpected reply, and a message indicating a timeout waiting for a response in the producer that sent the original message.

    That's why your "answer" (which doesn't actually answer your question, only describe how to reproduce your problem reliably) is able to reproduce the problem by starting multiple parallel routes that send InOut messages to the same destination.

    To fix the problem, you need to ensure that your producers will get only their own messages, either via separate reply destinations for each producer, via unique selectors for each producer, or by reducing the number of producers.

提交回复
热议问题