关注来自WMQ的同步点概念

时间:2012-09-27 02:24:37

标签: ibm-mq mq

我对WebSphere MQ中的 syncpoint 感到困惑。根据WMQ信息中心的参考资料,同步点的定义如下:

  

在最简单的情况下,在任务结束时,决定提交或撤消更改。但是,对于应用程序来说,在任务中的其他逻辑点上同步数据更改会更有用。这些逻辑点称为同步点(或同步点),处理两个同步点之间的一组更新的周期称为工作单元。

因此, a unit of work 被命名为两个同步点之间的处理。根据我的理解,这个工作单元实际上是一个交易。所以我在这里画出反映他们之间关系的图片:

enter image description here

  1. 我理解正确吗?
  2. 这里的另一个问题是同步点,据说同步应用程序的数据,从何处同步数据?
  3. 由于

1 个答案:

答案 0 :(得分:5)

答案1:是的,您正确理解它。事务是完全成功或失败的原子工作单元。同步点是事务之间的边界。事务和同步点之间的细微差别在于,事务下完成的工作在一段时间内可能是不确定的,而同步点是事务处于不确定状态的状态。如果发生故障,队列将恢复到最后一个同步点存在的状态,然后回滚任何挂起的事务,或者在XA的情况下,可能由资源管理器提交。

信息中心页面Transaction management and support可能会比帖子中链接的页面更好地解释它。

答案2:数据由资源管理器同步。对于消息是事务中唯一参与者的本地工作单元,同步仅在队列中发生,并且队列管理器充当资源管理器和事务管理器。对于涉及同一事务中的消息和数据库更新的全局工作单元,同步发生在QMgr和充当资源管理器的数据库中。事务管理器将是MQ或应用程序服务器,它协调资源管理器之间的同步。

无论事务是本地事务还是全局事务(有时也称为单阶段提交或两阶段提交),事务和同步点之间的关系都是相同的。同步点是保留已知状态的最新时间点,可以回滚一个不确定的事务。