zoukankan      html  css  js  c++  java
  • 分布式事务

    事务概念

    并发控制的基本单位。所谓事务,它是一个操作序列逻辑操作的单元,要么成功,要么失败是不可分割的工作单位。

    事务特性(ACID特性):

    • 原子性(Atomicity):事务必须是原子工作单元,对于诗句修改,要么全执行,要么全都不执行。
    • 一致性(Consistenty):事务在完成时,必须使所有的数据都保持一致状态。
    • 隔离性(Isolation):并发事件所做的修改必须与任何其他并发事务所作的修改隔离。
    • 持久性(Durability):一旦事务提交成功,数据修改是永久的。

    事务管理器

    LTM:轻量级事务管理器

    1. 管理本地事务
    2. 单个应用程序域中的事务
    3. 管理和实现俩个阶段提交协议
    4. 高效的资源管理器

    KTM:在Vista核心中的新组建方便进行大量的错误回复工作

    1. KTM只能管理本地服务的事务

    DTC:分布式事务协调器

    1. 分布式环境中运行事务
    2. 事务传播
    3. 跨机器,夸环境的事务管理器

    WCF事务模式

    • None 不启用
    • client 客户启用 强制服务参与
    • service 服务启用
    • client/service  客户端或者服务本身启用事务

    TransactionFlowOption

    • TransactionFlowOption.NotAllowed:不参与任何事务(默认值)
    • TransactionFlowOption.Allowed:允许参与事务。如果调用方(客户端)和服务Bingding启用了事务则参与。
    • TransactionFlowOption.Mandatory:强制启用事务。调用方(客户端)喝服务Binding必须启用事务才能调用本服务。

    WCF事务模式配置

    • Client/Service Transaction 最常见的一种事务模型 通常有客户端或服务本身启用一个事务。设置步骤:
      (1)、选择一个支持事务的Binding,设置TransactionFlow=true。
      (2)、设置TransactionFlow(TransactionFlowOption.Allowed)。
      (3)、设置OperationBehavior(TransactionScopeRequired=true)
    • Client Transcation 强制服务必须参与事务,而且必须是客户端启用事务。设置步骤:
      (1)、选择一个支持事务的Bingding,设置TransactionFlow=true
      (2)、设置TransactionFlow(TransactionFlowOption.Mandatory).
      (3)、设置OperationBehavior(TransactionScopeRequired=true)
    • Service Transaction  服务必须启用一个根事务 而且不参与任何外部事务。设置步骤:
      (1)、选择任何一种Bingding,设置TransactionFlow=FALSE(默认)
      (2)、设置TransactionFlow(TransactionFlowOption.NotAllowed)
      (3)、设置OperationBehavior(TransactionScopeRequired=true)

    事务投票机制

     image

     

     

  • 相关阅读:
    常见动态规划题目详解
    回溯法常见题目总结
    AWK语法入门
    JavaScript深拷贝—我遇到的应用场景
    git代码版本回退
    Rem实现移动端适配
    Weex了解
    Vue.js入门学习
    今日小结—304状态码,数组去重
    js今日小结—Ajax、前端安全、GET&POST、闭包、HTTPS
  • 原文地址:https://www.cnblogs.com/running-mydream/p/4141534.html
Copyright © 2011-2022 走看看