网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

理解.NET 2.0中的事务

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
vices。

    事务分为本地事务和分布式事务两种类型。(1)本地事务:该类型事务使用已知数据源(例如SQL Server),同时还是单阶段事务。当单个数据库中保存了所有有关事务的数据,那么对自身可以强制使用ACID规则。这意味着在单个数据库中(例如SQL Server),只要使用同一个连接,则可以跨数据库使用本地事务。(2)分布式事务:该类型事务使用多个已知事务数据源。分布式行为可能需要从消息队列中读取消息,从SQL Server数据库中获取数据,以及将消息写入其他数据库。

    一些软件包(例如MSDTC)能够以编程方式辅助实现分布式事务,通过使用一些方法(例如两阶段提交和回滚)能够控制跨越所有数据源的提交和回滚行为,以便保证集成性。MSDTC仅可用于兼容事务管理接口的应用程序。当前可用的应用程序有MSMQ、SQL Server、、Sybase和其他当前可用的应用程序(称为资源管理器)。

    在分布式事务环境中,不同的资源管理器需要实现可靠的提交,最为常见的实现是两阶段提交。在两阶段提交中,实际的提交工作分为两个阶段:第一个阶段包括为提交准备一些所需的更改。这样,资源管理器就会与事务协调器通信,告知其更新准备已经就绪,准备执行提交,但实际还不进行提交。在第二个阶段中,一旦所有资源管理器都告知事务协调器准备工作就绪,那么事务协调器将使所有参与者都了解继续工作准备好,接着执行更改。在两阶段提交中,单个或者多个数据库能够参与分布式事务。实际上,任何在MSDTC事务中登记的对象都能够参与由MSDTC管理的分布式事务。例如,MSMQ能够参与由两个SqlConnection对象连接两个不同数据库的事务。
 

3. .NET 2.0中的事务

    通过登记正在执行的事务性工作类型的资源管理器,.NET Framework 2.0中的事务管理系统能够解决动态事务组合而导致的额外开销问题。它还提供了将多个不稳定资源转换为提交和回滚事务模型所需的架构。在下面的内容中将介绍.NET 2.0中与事务有关的轻量级事务管理、显式事务、TransactionScope类和自动化事务。

轻量级事务管理

    对于发生在单个应用程序域中的事务,LTM是一种运行很快,非常便宜的资源管理器。LTM是框架中所有事务的起点,同时监视正在与事务交互的资源,以及根据需要登记更多健壮的事务管理器的服务。

    当事务性工作在进程外工作(例如开始修改数据库数据)时,LTM将自动使用支持可升级的单阶段登记(PSPE)的资源管理器模型。这是一种新的事务性架构,其理解LTM的“预付费”机制。如果没有可用的PSPE管理器,那么LTM会登记DTC。当然,多个远程数据源将被登记的DTC修改。当PSPE模型开始工作时,事务的执行将于ADO.NET 1.x的事务一致。读者可能会怀疑PSPE具有与ADO.NET事务一样的性能。当与多个数据库交互时,事务将自动提升到DTC。

    在.NET Framework 2.0中,使用SQL Server 2005时将自动获得PSPE事务。如果事务性工作与另一个服务器或者数据库交互,那么自动使用DTC。易失性事务自动参与PSPE,而不用调用DTC。

实现显式事务

    有时候,TransactionScope对象的默认隐式自动事务功能可能无法提供所需较好的控制级别。在这种情况下,可能需要人工创建事务,同时显式提交或者回滚事务。示例1显示使用CommittableTransaction类创建显式事务包括的步骤。

    例1:使用CommittableTransaction实现显式事务
<%@ Page Language="" %> 
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Transactions" %>
&l

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号