ACK_MODE确认模式
确认模式用来指示会话如何确认收到消息,在使用Connection的createSession方法时需要指定此选项,在JMS的Session接口中包含下面四个选项
· AUTO_ACKNOWLEDGE = 1 自动确认
当会话从对 receive 的调用成功返回时,或在会话已调用的用于处理消息的消息侦听器成功返回时,会话会自动确认客户端的消息接收。
· CLIENT_ACKNOWLEDGE = 2 客户端手动确认
通过此确认模式,客户端通过调用消息的 acknowledge 方法确认已使用的消息。 确认已使用的消息将确认该会话已使用的所有消息。
· DUPS_OK_ACKNOWLEDGE = 3 自动批量确认
此确认模式指示会话延迟确认消息的传送。这可能在 JMS 提供者失败的情况下导致传送某些重复消息,因此只有能允许重复消息的使用方才应使用此模式。使用此模式可以通过最大限度地减少会话为防止重复所做的工作,从而减少会话开销。
· SESSION_TRANSACTED = 0 事务提交并确认
如果会话是事务的则使用此模式,忽略设置的其他模式值
在事务开启之后,和session.commit()之前,所有消费的消息,要么全部正常确认,要么全部redelivery。这种严谨性,通常在基于GROUP(消息分组)或者其他场景下特别适合。