代码之家  ›  专栏  ›  技术社区  ›  wing2ofsky

关注WMQ中的同步点概念

  •  5
  • wing2ofsky  · 技术社区  · 12 年前

    我有点困惑 syncpoint 根据WMQ信息中心的参考 同步点 定义如下:

    在最简单的情况下,提交或放弃更改的决定是在任务结束时做出的。但是,应用程序在任务中的其他逻辑点同步数据更改可能更有用。这些逻辑点被称为同步点(或同步点),处理两个同步点之间的一组更新的周期被称为工作单元。

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

    enter image description here

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

    谢谢

    1 回复  |  直到 12 年前
        1
  •  5
  •   Community Dan Abramov    3 年前

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

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

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

    无论事务是本地的还是全局的(有时也称为单相提交或两阶段提交),事务和同步点之间的关系都是相同的。同步点是保存已知状态的最新时间点,并且有疑问的事务可能会回滚到该时间点。