activemq 确认消息之后删除 ACK

    //创建一个session
            //第一个参数:是否支持事务,如果为true,则会忽略第二个参数,被jms服务器设置为SESSION_TRANSACTED
            //第二个参数为false时,paramB的值可为Session.AUTO_ACKNOWLEDGE,Session.CLIENT_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE其中一个。
            //Session.AUTO_ACKNOWLEDGE为自动确认,客户端发送和接收消息不需要做额外的工作。哪怕是接收端发生异常,也会被当作正常发送成功。
            //Session.CLIENT_ACKNOWLEDGE为客户端确认。客户端接收到消息后,必须调用javax.jms.Message的acknowledge方法。jms服务器才会当作发送成功,并删除消息。
            //DUPS_OK_ACKNOWLEDGE允许副本的确认模式。一旦接收方应用程序的方法调用从处理消息处返回,会话对象就会确认消息的接收;而且允许重复

            session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE );

 TextMessage msg = (TextMessage) message;

 // 可以通过此方法反馈消息已收到

                            msg.acknowledge();



注意,此方法甚为好用,如果开启了持久,数据库里的信息也同步会被更新。很方便


猜你喜欢

转载自blog.csdn.net/hjm4702192/article/details/80828092
ACK