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

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

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

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

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

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

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

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

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

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

=======

转载自

作者:
出处:
 

转载于:https://www.cnblogs.com/llbofchina/archive/2011/06/30/2094071.html

你可能感兴趣的文章
[解决方法] php大form用post方式传递数据过多被截取的问题
查看>>
语音转文字小工具开发Python
查看>>
bzoj3786 星际探索 splay dfs序
查看>>
Unity Manual 用户手册
查看>>
博客园第一天,纪念一下。O(∩_∩)O~
查看>>
LA 4015 树形背包
查看>>
JDBC学习总结(一)
查看>>
UPS故障案例集(一)
查看>>
加载静态文件,父模板的继承和扩展
查看>>
Oracle 11gR2 deferred segment creation 与 exp/imp 说明
查看>>
学习笔记之Bokeh Data Visualization | DataCamp
查看>>
学习笔记之Visual Studio Code & Clang
查看>>
类型和声明笔记
查看>>
Epoll模型【转】
查看>>
NB卡开卡注意事项【转】
查看>>
如何在linux下检测内存泄漏(转)
查看>>
SQL Server数据库可能遇到的报错
查看>>
Java中设置classpath、path、JAVA_HOME的作用
查看>>
Spring+Struts2+Hibernate框架整合流程
查看>>
LeetCode OJ:Peeking Iterator(peeking 迭代器)
查看>>