有谁能请解释一下Session.AUTO_ACKNOWLEDGE对ActiveMQ JMS配置的影响
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
答案 0 :(得分:6)
我相信默认情况下ActiveMQ设置为自动确认消息。这只是意味着当消息到达时,它将自动确认消息到达。它与从JMS对象调用.acknowledge()相同。
关闭自动确认的一个原因是,如果您构建了一个服务器,并且假设您正在处理每个JMS消息并正在进行某种数据库事务。如果事务失败,您将希望重新发送JMS消息,以便您可以修复错误并再次处理它。因此,在这种意义上,您只能在处理之后才确认JMS对象。