关闭

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

1102人阅读 评论(1) 收藏 举报

一、引子

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

二、解决方案

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

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

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

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4513次
    • 积分:94
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论