私は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にメッセージを挿入しているので。
キュー内のメッセージは削除されacknowledge()
ませんか?
どうすればこれを達成できますか?