¿Hay alguna manera de suprimir los mensajes duplicados en una cola definida en el servidor ActiveMQ?Evitar mensajes duplicados en JMS/ActiveMQ
Traté de definir manualmente JMSMessageID, (message.setJMSMessageID ("uniqueid")), pero el servidor ignora esta modificación y entrega un mensaje con el identificador JMSMessage generado incorporado.
Por especificación, no encontré una referencia sobre cómo deduplicar mensajes.
En HornetQ, para resolver este problema, debemos declarar la propiedad específica HQ org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID en la definición del mensaje.
es decir .:
Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
Alguien sabe si hay una solución similar para ActiveMQ?
Estoy en duda si este método resolverá mi problema. Necesito mantener solo una instancia de mensaje con el mismo JMSMessageID solo durante esta instancia está en cola. Lo necesito trabajando como un conjunto. Quiero ser capaz de poner otro mensaje con el mismo JMSMessageID después de eliminar el último elemento idem de la cola. Necesito implementarlo y probarlo. Pero, basado en Idempotent descrito en el libro de EAI, creo que el concepto no coincide con mi necesidad. BU, la solución propuesta es buena. Estudiaré más sobre él y comentaré aquí mis resultados. Gracias – apast