11 Stimmen

Apache ActiveMQ 5.3 - Wie konfiguriert man eine Warteschlange, um doppelte Nachrichten abzuweisen?

Ich brauche die Warteschlange, um die Richtlinie "Keine Duplikate" durchzusetzen. Ist das möglich? Wenn ja, wie? (Ich habe schon stundenlang gegoogelt...)

Edita:

Die ActiveMQSession-Implementierung hat diese Zeilen:

        // transform to our own message format here
            ActiveMQMessage msg = ActiveMQMessageTransformation.transformMessage(message, connection);

        // Set the message id.
        if (msg == message) {
            msg.setMessageId(new MessageId(producer.getProducerInfo().getProducerId(), sequenceNumber));
        } else {
            msg.setMessageId(new MessageId(producer.getProducerInfo().getProducerId(), sequenceNumber));
            message.setJMSMessageID(msg.getMessageId().toString());
        }

Die ActiveMQMessageTransformation ist steckbar (man kann sie einstellen), aber die folgende if-Anweisung ist eine ziemlich unumstößliche.

Irgendwelche Ideen, außer einer Änderung des Codes?

1voto

Rob Davies Punkte 795

ActiveMQ hat die Erkennung von doppelten Nachrichten eingebaut - wie definieren Sie ein Duplikat? Wenn das Duplikat die gleiche messageId hat, sollte es verworfen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X