博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF 第五章 行为 实现事务(操作行为)
阅读量:5265 次
发布时间:2019-06-14

本文共 936 字,大约阅读时间需要 3 分钟。

有两个场景一般用作事务的参考。多步骤商业过程是典型跨度分,天,月的长时间运行过程。它们可以涉及多个组织和基于人的工作流。短期运行事务是那些在几秒钟完成并很少有外部依赖的商业操作。尽管它们都有定义的很好的接口和确定的工作流,它们是根本不同的事物。WCF支持短期运行的事务。它通过借助.NET和Windows基础结构来实现运行在只有微软环境平台的事务同时通过使用WS-*标准事务来支持跨平台。

  多步骤商业过程一般需要同时连接自动化过程和手动工作流。它们可能需要不长时间(比如,处理一个订单)或者几个月(比如,获得一个回扣)。如果一个多步骤过程(比如,计划一次商业旅行)半途而费,前期步骤(比如,飞机票预订)可以通过取消步骤(取消机票预订)来补偿。这些事务由一个消息代理或者企业服务比如BizTalk Server 支持。

  短期运行的事务离散业务功能封装。它们一般需要花费几秒钟完成。商业功能可以在一个高的层次暴露来聚合或者从多个源更新消息。商业功能也可以在一个低的层次(更新客户地址)暴露来更新仅仅一个数据源。在这些情况,所有的事务内的数据更新必须成功或者失败因为为了维护商业功能的完整它们是以原子提交的。如果一个事务内的组件更新失败,服务必须将之前成功的更新撤销为失败以便于数据得以保留到它们在操作开始前的状态。

  这个行为通常被了解为一个ACID事务。在这个主题上有很多文章,但是简要说来ACID事务就是:

    原子。 所有事务内的更新都是成功的,或者它们都被回滚了。任何部分更新都不允许。例如,在一个银行转账操作中,如果取钱操作成功了但是存钱失败了,那么取钱操作会回滚以便于总钱数不会多出也不是少。

    一致性。 在操作结束以后,根据商业规则所有的数据都是合法的。例如,在一个银行转账事务中,接收方和发送方的账户必须是合法的账户否则事务将会终止。

    隔离。 当操作执行时,在事务外不可以看见任何部分结果。例如,当一个银行转账操作正在执行时,其他用户在转账过程中不会看到账户余额。

    持续。 当事务执行后,数据必须在一种不被系统失效影响的方式。

转载于:https://www.cnblogs.com/danielWise/archive/2010/12/07/1899565.html

你可能感兴趣的文章
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
一种高效的序列化方式——MessagePack
查看>>
2019年春季学期第四周作业
查看>>
2019春第十周作业
查看>>
解决ThinkPHP关闭调试模式时报错的问题汇总
查看>>
【APT】SqlServer游标使用
查看>>
关于ExecuteNonQuery()返回值为-1
查看>>
Firefox修復QQ快速登錄
查看>>
PAT——1060. 爱丁顿数
查看>>
分布式技术追踪 2017年第二十期
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>