我ActiveMQ
用来发送消息。
所以当我发送消息时,消息来接收消息。在成功插入时,它被确认。
但是我有确认后的代码,可以抛出NullPointerException
.
所以为了故意产生那个异常,我抛出了NullPointerException
. 所以当它这样做时:
消息不是dequeued
,同样的消息再次出现在onMessage
函数中。
我的代码是:
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 produce a null pointer exception **
}
catch(Exception ex)
{
}
}
为什么该消息再次onMessage()
像我一样发挥作用acknowledge()
。
因为我已经在 db.xml 中插入了消息。
队列中的消息不会被删除acknowledge()
吗?
我怎样才能做到这一点?