关闭

.NET简谈事务本质论

发表于:2012-1-12 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王清培    来源:51Testing软件测试网采编

  原理:

  上面我们了解了事务的概念、特性,那么事务的实现原理是如何呢,在这里我穿插一句,我们这里只讨论事务的理论跟具体用哪种语言实现或者数据库是没有任何关系的,只有搞清楚了这些理论,才能全局的理解事务处理,我保证你会对数据库的事务处理有个崭新的认识。

  那么如何才能使事务运作起来呢,也就是事务的实现模型。任何语言任何工具对事务的实现都会依照原理来进行编码,所以我们暂时抛开那些乱七八糟的数据库事务。来了解事务的实现原理,它由哪几大块组成,彼此是如何协调完成事务的。

  事务管理器:事务的开始直到结束在这周期中都需要有一个中心进行管理事务范围内的所以参与者,在事务内部可能包含多个操作点,那么如果管理呢。我们来看一下图解。

  图2:

  首先事务的发起者会初始化全局事务环境,只不过这个环境里面只有发起者一个对象存在,然后随着调用的不断延伸使事务的环境不断辐射,事务的环境可大可小这要看事务的应用范围了,普通的数据库事务就很简单,事务的范围不会超过数据库引擎,但是现在大型的联机事务处理就设计到多数据库引擎之间的事务处理。

  那么调用者如何参与到事务中去呢,我想这就跟具体的语言平台有关系了,不同的语言不同的平台实现可能不同。后面我们就用.NET事务来讲解,在.NET里面事务是如何使用的。

  上图只是说了一下事务是如何扩散事务环境的,那么在事务的生命周期中到底有哪些东西参与了,这就涉及到了事务处理的实现核心,这些模型支撑了事务的整个生命周期。

  图3:

  我们按照上图的讲解来分析一下事务是如何实现的,用不同的语言不同的平台均可以实现,关键是我们要能理解实现的原理。

  事务的发起者(客户):这里也是事务的开始,环境由它创建,环境的传播是通过事务环境感应自动扩展,但是有些地方也需要手动的进行事务环境的传播和分离。

  资源管理器:资源管理器是负责事务要操作的数据,资源管理器要配合事务的执行保证数据在适当的时候能顺利的持久化。资源管理器就是我们日常使用的数据库管理系统,只不过数据库管理系统已经很强大了,能完成复杂的数据处理,包括对分布式事务的支持、DTC的支持等等。所以我们这里要明白数据库事务处理是在数据库管理系统范围内的事务处理,我们也可以自己编写具有事务性的软件工具。

  具体事务管理器是如何参与到事务环境中去的,就要看具体的平台了。下面文章我们再来了解在.NET里面是如何实现事务处理、分布式无处理、数据库事务处理的。

  事务管理器:这是事务环境的总轴,负责事务环境内的一切管理,包括对资源管理器的登记通知等等。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号