jms 消息的确认模式

三种

.Session.AUTO_ACKNOWLEDGE
                 CLIENT_ACKNOWLEDGE
                DUPS_OK_ACKNOWLEDGE

 

1、AUTO_ACKNOWLEDGE 是自动确认模式,不需客户端进行确认

服务器端:

    pubSession = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);

 

2 、     CLIENT_ACKNOWLEDGE   客户端进行确认

       服务器端

                       conn.createTopicSession(false, Session.CLIENT_ACKNOWLEDGE);

     客户端

                public void onMessage(Message message) {

                           try{

                              message.acknowledge();

                                }catch (){

                                              如果在此期间出现异常,这个时候服务器端可能会保存这个消息,进行恢复后的重新发磅,因此可能导致消息的重复处理,所以这里可以进行一定的操作保证。。。  ,如undo ,回滚等操作

 

                                  }

                            。。。。。。。。。。。。进行消息 的处理

 

                  }

 

3                  DUPS_OK_ACKNOWLEDGE  允许重复消息,

 

This acknowledgment mode instructs the session to lazily acknowledge the delivery of messages. This is likely to result in the delivery of some duplicate messages if the JMS provider fails, so it should only be used by consumers that can tolerate duplicate messages. Use of this mode can reduce session overhead by minimizing the work the session does to prevent duplicates.

 google 翻译:

这确认模式指示会议懒洋洋地承认邮件的传递。 这可能导致一些重复的,如果JMS 提供者失败的讯息传递,因此它应该只用于消费者可以容忍重复的邮件。 使用这种模式可以减少工作的会议尽量减少会议的开销并防止重复。

 

DUPS_OK_ACKNOWLEDGE:允许副本的确认模式。一旦接收方应用程序的方法调用从处理消息处返回,会话对象就会确认消息的接收;而且允许重 复确认。在需要考虑资源使用时,这种模式非常有效。注意:如果你的应用程序无法处理重复的消息的话,你应该避免使用这种模式。如果发送消息的初始化尝试失 败,那么重复的消息可以被重新发送。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值