Estoy usando ActiveMQ
para enviar el mensaje.¿Por qué el mensaje vuelve a la función onMessage()?
Así que cuando envié un mensaje, el mensaje viene para recibir el mensaje. En la inserción exitosa, se confirma.
Pero tengo un código después del acuse de recibo, que puede arrojar NullPointerException
.
Para producir esa excepción intencionalmente, tengo tiro NullPointerException
. Entonces cuando lo hago
El mensaje no es dequeued
y el mismo mensaje vuelve a la función onMessage
.
mi código es:
public void onMessage(Message message) {
String msg = null;
try
{
msg = receiveMessage(message);
// other code to insert message in db
message.acknowledge();
if(true)
{
throw new NullPointerException("npe"));
}
** // other code which might produces null pointer exception **
}
catch(Exception ex){}
}
Ahora mi pregunta es por qué el mensaje está llegando a más onMessage()
función que tengo acknowledge()
también.
Como ya he insertado el mensaje en db.
¿No se eliminará el mensaje dentro de la cola en acknowledge()
?
¿Cómo puedo lograr esto? Gracias de antemano.
¿Cuál es el modo de reconocimiento de su sesión? –
@Tim acknowlge mode está establecido como Client_Acknowledge. –
vikiiii
¿Qué versión de activemq está usando? –