消息中间件学习之JMS(2)

本篇主要介绍JMS的消息确认机制。

JMS 消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。

对于事务性会话,当事务提交时,确认工作自动发生;在非事务会话中,消息的确认机制在会话创建时就应该指定,JMS中定义了三种确认方式:

1.Auto_ACKnowledge,自动确认模式,对于同步消费消息的,在成功调用过receive()方法之后,且无异常发生时,会话将自动对收到消息予以确认;对于异步消费消息的,在onMessage()方法成功调用后,且无异常发生时,会话即对收到的消息予以确认。

2.Client_ACKnowledge, 客户端自行确认模式,这种模式需要消息消费者显式的调用Message类的acknowledge()方法予以确认。

3.Dups_ACKnowledge,延时或批量通知模式,这种模式允许消息消费者不必急于确认收到的消息,允许在收到多个消息之后一次完成确认;这种方式有时可能更有效,因为在消息提供者崩溃的时候,如果消息没有确认,消息可以重新发送。

通过Connection创建Session时,如果指定为非事务性会话时,必须指定确认模式

Session session=connection.createSession(false,Session.Auto_ACKnowledge)//这里必须指定一个确认模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容