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

     

     

  • 相关阅读:
    Condition Variables
    Cocos2d-x执行时错误:Cocos2d: Get data from file(xxx.xxx) failed!
    HDU
    Android context空指针异常
    linux c server and client 简单的通信
    UVM:8.4.3 用factory 机制创建实例的接口
    5.4 桥接模式(4.2)
    rac安装_grid安装校验报错之grid未建立信任关系
    git 使用ss5代理
    convmv 解决GBK 迁移到 UTF-8 ,中文 文件名乱码
  • 原文地址:https://www.cnblogs.com/running-mydream/p/4141534.html
Copyright © 2011-2022 走看看