我正在创建一个包含多个消费者的主题,每个消费者都由clientId标识。我看到的行为是:一条消息进来了我在我的一个消费者中抛出一个运行时异常我想要 …
您可以创建一个事务处理的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次,直到你最后一次提交它。