我对WebSphere MQ中的 syncpoint
感到困惑。根据WMQ信息中心的参考资料,同步点的定义如下:
在最简单的情况下,在任务结束时,决定提交或撤消更改。但是,对于应用程序来说,在任务中的其他逻辑点上同步数据更改会更有用。这些逻辑点称为同步点(或同步点),处理两个同步点之间的一组更新的周期称为工作单元。
因此, a unit of work
被命名为两个同步点之间的处理。根据我的理解,这个工作单元实际上是一个交易。所以我在这里画出反映他们之间关系的图片:
由于
答案 0 :(得分:5)
答案1:是的,您正确理解它。事务是完全成功或失败的原子工作单元。同步点是事务之间的边界。事务和同步点之间的细微差别在于,事务下完成的工作在一段时间内可能是不确定的,而同步点是事务处于不确定状态的状态。如果发生故障,队列将恢复到最后一个同步点存在的状态,然后回滚任何挂起的事务,或者在XA的情况下,可能由资源管理器提交。
信息中心页面Transaction management and support可能会比帖子中链接的页面更好地解释它。
答案2:数据由资源管理器同步。对于消息是事务中唯一参与者的本地工作单元,同步仅在队列中发生,并且队列管理器充当资源管理器和事务管理器。对于涉及同一事务中的消息和数据库更新的全局工作单元,同步发生在QMgr和充当资源管理器的数据库中。事务管理器将是MQ或应用程序服务器,它协调资源管理器之间的同步。
无论事务是本地事务还是全局事务(有时也称为单阶段提交或两阶段提交),事务和同步点之间的关系都是相同的。同步点是保留已知状态的最新时间点,可以回滚一个不确定的事务。