activeMQ-07消息的事务

提到事务就会回想起,数据库的事务:ACID(原子性、一致性、隔离性、持续性);
当然activeMQ也是有事务支持的。
1)在前面的生产者代码里有体现如下:

//创建连接session;第一个参数为事务,第二个参数为签发机制。暂时选择默认,后续说明;
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

修改如下,这是开启事务

//创建连接session;第一个参数为事务,第二个参数为签发机制。暂时选择默认,后续说明;
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
//在session关闭之前需要配合提交,不然无法正常发布消息
session.commit();
session.close();
//出现异常
session.rollback();

2)消费者事务
消费者在创建session时

//创建连接session;第一个参数为事务,第二个参数为签发机制。
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
//消费者获取到消息后需要配合commit使用,不然消费被视为未消费;
session.commit();

你可能感兴趣的:(activeMQ-07消息的事务)