RabbitMQ - auf eine neue version aktualisiert und bekam eine Menge von "PRECONDITION_FAILED unbekannten Lieferung-tag 1"

Nur ein Upgrade auf eine neue version von RabbitMQ -- 2.3.1 -- und nun tritt folgender Fehler auf:

PRECONDITION_FAILED unknown delivery tag 1  

...gefolgt von der Kanal schließen. Dieser arbeitete auf einem älteren RabbitMQ mit der client-Seite keine änderungen.


In Bezug auf das Verhalten der Anwendung:

Wenn App A will senden einer asynchronen Nachricht an App b und erhalten eine Antwort von B, dies ist der Algorithmus:

  1. App generiert eine eindeutige ID und speichert Sie in der message-Objekt
  2. Dann Eine App abonniert, um eine neue Warteschlange mit dem Warteschlangen-Namen und routing-key gleich auf die uuid.
  3. App B öffnen Sie die Nachricht, einige Berechnungen durchzuführen und das Ergebnis an den Kanal mit der routkey, die es erhielt.
  4. App Ein, bekommt die Antwort, und schließen Sie die Warteschlange.

Bisher lief eigentlich alles gut in der 1.7.0. was ging schief in 2.3.1?


Wenn Eine Anwendung ruft basicPublish()Anwendung B sofort wirft Sie die folgende Ausnahme:

com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=406,reply-text=PRECONDITION_FAILED - unknown delivery tag 1,class-id=60,method-id=80),null,""}
    at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:191)
    at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:159)
    at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:110)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:438)
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=406,reply-text=PRECONDITION_FAILED - unknown delivery tag 1,class-id=60,method-id=80),null,""}

InformationsquelleAutor der Frage Bick | 2011-02-22

Schreibe einen Kommentar