ado.net统一事务,及连接池管理(一)

原创 2006年06月22日 09:30:00

一、引子

在分层架构的系统中,业务层(Buiness)通常需要调用多个数据访问层(DAO)方法才能实现1个完整的业务数据处理,这就需要考虑事务的统一管理。除了重量级的COM+外,能否有一种轻量有的事务管理方法呢?我思考良久,也曾在CSDN发贴寻求良方。

二、解决方案

经过数次的试验,决定借鉴如java中JTA的概念,将数据库连接与线程绑定,同一线程中启动的事务即为同一事务。终于可行,不敢独享。具体遵循如下:

1、由‘事务管理器’统一管理事务及数据库连接,防止数据库连接的实例在各层方法中层层传递,甚至做到在某些层次看不到事务及连接,只感觉到对象。

2、‘事务管理器’能够不同的数据源,即需要抽象出数据库连接管理器。

3、同一线程中启动的事务为同一事务。将数据库连接放入到HashTable,并以CurrentTread为key。

4、给数据库事务的标志属性(如:事务是否已经开始)加使用特性(Attribute)ThreadStatic。

ado.net统一事务,及连接池管理(三)

 本节为具体的代码,事务管理器类的代码如下:===================================================using System;using System.D...
  • NoReady
  • NoReady
  • 2008年03月18日 21:01
  • 506

ado.net统一事务,及连接池管理(四)

数据库连接控制器类,代码如下:==============================================namespace b2c.DB{    using System;    u...
  • NoReady
  • NoReady
  • 2008年03月18日 21:03
  • 263

ado.net统一事务,及连接池管理(五)

数据库参数配置类,代码如下:===================================namespace b2c.DB{ using System; using System.Collec...
  • NoReady
  • NoReady
  • 2008年03月18日 21:04
  • 472

ado.net统一事务,及连接池管理(二)

一、事务管理器提供功能我们的目标是支持事务的统一访问,又可支持事务的并发。让访问者看不到数据连接,只需关注事务的开启、提交、回滚即可,因此公开的功能如下:1、开启事务:负责数据库连接的创建和事务的开启...
  • NoReady
  • NoReady
  • 2008年03月18日 20:58
  • 484

自定义框架之连接池和事务管理

一、事务的个人看法(仅供参考)首先事务管理大家都知道是怎么回事,不外呼就是对数据库操作时是commit还是rollback,也就是提交当前操作的数据是正常提交还是回滚,如果回滚则不会将当前执行的sql...
  • renfng
  • renfng
  • 2017年05月18日 14:42
  • 359

关于ADO.NET连接池

前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,...
  • studyzy
  • studyzy
  • 2013年09月10日 14:20
  • 967

ADO.NET 事务控制

在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务。若要执行事务,请执行下列操作: 1.调用Connection 对象的BeginTransactio...
  • suixufeng
  • suixufeng
  • 2013年10月12日 10:11
  • 996

C# ADO.Net事务处理

SQL Server中的事务可以将多个数据库增删改查操作合并为单个工作单元,在操作过程中任何部分出错都可以滚回已经执行的所有更改.ADO.Net中也提供了事务处理功能,通过ADO.net事务,可以将多...
  • miniduhua
  • miniduhua
  • 2016年10月21日 14:23
  • 3487

.NET开发中的事务处理大比拼 之 ADO.NET级别的事务

现在我们对事务的概念和原理都有所了解了,并且作为已经有一些基础的C#开发者,我们已经熟知编写数据库交互程序的一些要点,即:(1)使用SqlConnection类的对象的Open()方法建立与数据库服务...
  • sven_xu
  • sven_xu
  • 2015年06月02日 09:13
  • 1246

你必须知道的ADO.NET(五) 细说数据库连接池

题外话 通过前几章的学习,不知道大家对ADO.NET有一定的了解了没有。撇开文章质量不讲,必须肯定的是,我是用心去写每一篇文章的。无论是是在排版上,还是在内容选取上我都花了不少心思。我希望通过本系列...
  • aojiancc2
  • aojiancc2
  • 2014年04月09日 12:08
  • 1561
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ado.net统一事务,及连接池管理(一)
举报原因:
原因补充:

(最多只允许输入30个字)