`
黎剑发
  • 浏览: 3155 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JMS的事务

    博客分类:
  • JMS
JMS 
阅读更多
客户端成功接收一条消息的标志是这条消息被签收。
成功接收一条消息一般包括如下三个阶段:
1.客户端接收消息;
2.客户端处理消息;
3.消息被签收。

ACKNOWLEDGE:
1.Session.AUTO_ACKNOWLEDGE
当客户端从 receive 或onMessage 成功返回时,Session 自动签收客户端的这
条消息的收条。在AUTO_ACKNOWLEDGE 的Session 中,同步接收receive 是上述三个阶
段的一个例外,在这种情况下,收条和签收紧随在处理消息之后发生。

2.Session.CLIENT_ACKNOWLEDGE
客户端通过调用消息的 acknowledge 方法签收消息。在这种情况下,签收发生。
在Session 层面:签收一个已消费的消息会自动地签收这个Session 所有已消费消息的
收条。

3.Session.DUPS_OK_ACKNOWLEDGE
此选项指示 Session 不必确保对传送消息的签收。它可能引起消息的重复,但
是降低了Session 的开销,所以只有客户端能容忍重复的消息,才可使用(如果Activ
eMQ 再次传送同一消息,那么消息头中的JMSRedelivered 将被设置为true)。


对队列来说,如果当一个Session 终止时它接收了消息但是没有签收,那么Activ
eMQ 将保留这些消息并将再次传送给下一个进入队列的消费者。
对主题来说,如果持久订阅用户终止时,它已消费未签收的消息也将被保留,直到
再次传送给这个用户。对于非持久订阅,AtiveMQ 在用户Session 关闭时将删除这些消
息。


ActiveMQ 支持两种消息传送模式:PERSISTENT 和NON_PERSISTENT 两种。
1.PERSISTENT(持久性消息)
这是 ActiveMQ 的默认传送模式,此模式保证这些消息只被传送一次和成
功使用一次。对于这些消息,可靠性是优先考虑的因素。可靠性的另一个重要方面是确
保持久性消息传送至目标后,消息服务在向消费者传送它们之前不会丢失这些消息。这
意味着在持久性消息传送至目标时,消息服务将其放入持久性数据存储。如果消息服务
由于某种原因导致失败,它可以恢复此消息并将此消息传送至相应的消费者。虽然这样
增加了消息传送的开销,但却增加了可靠性。
2.NON_PERSISTENT(非持久性消息)
保证这些消息最多被传送一次。对于这些消息,可靠性并非主要的考虑因素。
此模式并不要求持久性的数据存储,也不保证消息服务由于某种原因导致失败后消息不
会丢失。
分享到:
评论

相关推荐

    分布式事务实践 解决数据一致性

    4-4 Jms事务原理 4-5 Jms-session事务实例 4-6 Jms-spring事务实例 4-7 外部事务与JTA 4-8 JTA单数据源事务实例 4-9 JTA多数据源事务实例 第5章 分布式系统 介绍了分布式系统的定义、实现原则和几种形式,详细介绍...

    weblogic平台J2EE调优策略

    1.4.3 确认方式的选择和JMS事务 1.5 EJB代码调优 1.5.1 有效使用设计模式 1.5.2 使用EJB和WebLogic的特性 1.5.3 缓存资源 1.5.4 如何选择和使用Entity Bean 1.5.5 其他的一些小技巧 第二章 应用服务器调优 2.1 JVM...

    开源分布式事务管理组件Atomikos

    Atomikos,是一个基于Java的开源事务管理器,提供了事务管理和连接池,不需要应用服务器支持,支持JDBC和JMS事务,能提供对Spring,Hibernate的集成,有兴趣多了解的可以直接参考说明文当,有详细的介绍和使用说明。

    JMS入门Demo

    该属性值默认为false,这样JMS在进行消息监听的时候就会进行事务控制,当在接收消息时监听器执行失败时JMS就会对接收到的消息进行回滚, 对于SessionAwareMessageListener在接收到消息后发送一个返回消息时也处于...

    WebLogic jms三个实例

    三个jms的实例,实现了jms的queue和topic,同时也实现了远程传送消息和本地传送消息,另外也分别实现了session的事务和非事务模式,有了这三个例子应该可以满足你的任何关于jms的需求了,由于上传限制,另外还需要...

    Spring攻略(第二版 中文高清版).part2

    13.6 管理集成测试中的事务 530 13.6.1 问题 530 13.6.2 解决方案 530 13.6.3 工作原理 531 13.7 在集成测试中访问数据库 536 13.7.1 问题 536 13.7.2 解决方案 536 13.7.3 工作原理 537 13.8 使用...

    Spring攻略(第二版 中文高清版).part1

    13.6 管理集成测试中的事务 530 13.6.1 问题 530 13.6.2 解决方案 530 13.6.3 工作原理 531 13.7 在集成测试中访问数据库 536 13.7.1 问题 536 13.7.2 解决方案 536 13.7.3 工作原理 537 13.8 使用...

    spring+jms+jta事务的消息发送和消息消费

    spring+jms+jta事务的消息发送和消息消费。 完整可正常运行例子,对JTA分布式事务的配置。 本例可以直接作为处理消息的项目,在此之上直接继续开发。

    Spring整合JMS(四)——事务管理

    NULL 博文链接:https://elim.iteye.com/blog/1983532

    JMS中间件ActiveMQ介绍

    Java Message Service(JMS)是SUN提出的旨在统一各种MOM(Message-Oriented Middleware )系统接口的规范,它包含点对点(Point to Point,PTP)和发布/订阅(Publish/Subscribe,pub/sub)两种消息模型,提供可靠...

    JMS 2.0 规范

    JSR343 - JMS 2.0 Specification JMS 2.0 规范,英文原版,官方出品

    JMS-customer.rar_jms

    一个顾客管理的JMS应用实例:含有事务中使用消息EJB方法、消息EJB的并发控制等。

    JMS MDB 与 XA 事务-002

    NULL 博文链接:https://swearyd7.iteye.com/blog/1387779

    开源的JMS服务器和源码

    OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性: *. 它既支持点到点(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型。... 提供可靠消息传输、事务和消息过滤

    WSAD环境下JMS异步通信全攻略

    五、二阶段提交的事务 ━━━━━━━━━━━━━━━━━━━━━━━━━━  EJB 2.0和J2EE 1.3规范开始提供对Java消息服务(JMS)的支持。在J2EE 1.3加入JMS之前,J2EE环境中的组件通过RMI-IIOP协议通信,...

    微服务架构的分布式事务解决方案,完整31讲-龙果学院

    第05节--JMS规范的消息发送与接收特点 第06节--消息重复发送问题及业务接口的幂等性设计 第07节--可靠消息服务方案1(本地消息服务)的分析与设计 第08节--可靠消息服务方案2(独立消息服务)的分析与设计 第09...

    Java事务设计策略.

    infoq 迷你书最近阅读了InfoQ上的电子书<<Java Transaction Strategy>>之后受益匪浅, 单独花了两周时间将其翻译了一下.... X/Open XA 接口应该只被用于你想要在相同事务环境内协调多个资源(例如数据库或JMS消息)的情况.

    jms+activeMq+spring学习简单例子

    学习jms+active+spring过程中自己写的一些简单例子,详情可见博文http://blog.csdn.net/dream_broken/article/details/43759911

Global site tag (gtag.js) - Google Analytics