Вы можете создать транзакционный сеанс JMS:
// create JMS Session from JMS Connection
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
и используйте метод Session.rollback () , чтобы указать, что вам нужно снова увидеть это сообщение:
public void onMessage(Message message)
{
msgsReceived++;
System.err.println("received: " + message);
if( msgsReceived<3 ) { // simulating an error case
session.rollback();
} else {
session.commit();
}
затем вы должны будете увидеть это сообщение 3 раза, пока вы не в последний раз его зафиксировали.