producer 在提交事务时,发生宕机,commit 的命令没有发送到 broker,这时会发生什么?

ActiveMQ 开启事务发送消息的步骤:

session.getTransactionContext().begin();

producer.send(message);

session.getTransactionContext().commit();

在第三步加断点,然后关闭 producer 进程,模仿宕机。

broker 感知到 producer 的连接关闭后,会触发删除连接操作,回滚该连接下没有提交的事务。

posted on 2018-06-04 14:20  偶尔发呆  阅读(849)  评论(3编辑  收藏  举报