2009-12-08 4 views
9

J'ai besoin de la file d'attente pour appliquer la politique sans duplication. C'est possible? Si c'est le cas, comment? (je l'ai été googler pendant des heures ...)Apache ActiveMQ 5.3 - Comment configurer une file d'attente pour rejeter les messages en double?

Edit:

La mise en œuvre de ActiveMQSession a ces lignes:

 // 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()); 
     } 

Le ActiveMQMessageTransformation est embrochable (vous pouvez le régler), mais le suivant si la déclaration est plutôt incontournable.

Des idées, sauf changer leur code?

Répondre

1

ActiveMQ intègre la détection de messages en double - comment définissez-vous un doublon? Si le doublon a le même messageId - il doit être supprimé

+1

(Je suis désolé pour les noms de classes non spécifiques, ça fait longtemps) Je voulais définir l'identifiant de message de paramètre qui est testé pour la duplication. Cependant, malgré le fait que vous pouvez faire un message.setId, il est en train d'être surchargé (!) Dans l'AMQProxy et défini avec un nouveau messageId. – Yossale

+0

le messageID est défini par le fournisseur JMS - et pour ActiveMQ nous fournissons un identifiant global unique. La façon correcte de faire cela avec JMS est de définir une propriété d'en-tête de message. Pour ActiveMQ - vous pouvez utiliser l'ID message généré lui-même - car il sera toujours unique. –

+0

J'utilise ActiveMQ 5.4.1. Si je définis un JMSMessageID personnalisé, cela ne fonctionne pas comme prévu. Le JMSMessageId est construit par les internes d'ActiveMQ. J'ai rapporté un exemple et un exemple HornetQ sur http://stackoverflow.com/questions/4934386/avoiding-duplicated-messages-on-jms-activemq – apast

Questions connexes