Kaneboy's SharePoint Blog

SharePoint & Office Zealot
随笔 - 391, 评论 - 8162, 引用 - 201

导航

关于


About me :
SharePoint Architect. Build SharePoint solutions from year of 2003. Joined Microsoft in 2004. Working for HP now.

Certification :
MCPD - Web Dev
MCTS - SharePoint 2007 Dev
MCTS - SharePoint 2007 Config
MCTS - WSS 3.0 Dev
MCTS - WSS 3.0 Config
MCTS - SPS2003 Infra
MCTS - SPS2003 App
MCT
(ex)MVP 

Contact me :
kaneboy@gmail.com | follow @kaneboy on twitter

Authored books:


标签

每月存档

最新留言

  • waQJcBXJIUeshGqb
    Nice site. Thank you., <a href="http://usuarios.multimania.es/gedewuq/wholesal8e/zde...
    by louisiana college and university(匿名) on 2010/3/18 4:56:59
  • EnyuAcEEMmnRoTId
    Very good site. Thanks!, <a href="http://tovadeh.tripod.com/wholesal7a/zdeddeain.htm...
    by ponds dry skin cream(匿名) on 2010/3/18 3:50:00
  • OGxXKGtGarqlVonGd
    Nice site. Thank you., <a href="http://usuarios.multimania.es/sixacig/7th-dumm5f/map...
    by gourmet kitchen tool(匿名) on 2010/3/18 0:26:14
  • sRGCvENEKieXau
    Very good site. Thanks!, <a href="http://kuxeramu.100webspace.net/fashion-00/map.htm...
    by patent vinyl fabric(匿名) on 2010/3/17 8:06:07
  • cWfXKniuINOYXKuI
    Nice site. Thank you., <a href="http://kuxeramu.100webspace.net/mormon-r33/map.html&...
    by manitowoc ice maker(匿名) on 2010/3/17 6:59:30
  • qdvyXmxjTh
    Very good site. Thanks!, <a href="http://necilasa.100webspace.net/drag-game2/map.htm...
    by tennessee birth injury attorney(匿名) on 2010/3/17 5:52:17
  • lRojiPFRIMcWwEXXu
    Very good site. Thanks!, <a href="http://bikroom.co.tv/admitidos-univers/ssthapllery...
    by 2010 earned income tax credit(匿名) on 2010/3/16 6:44:43
  • hsJFqJCGACrvvC
    Very good site. Thanks!, <a href="http://magra.myip.org/linkin-park/disoracove.html&...
    by lowongan kerja bank 2010(匿名) on 2010/3/16 4:24:53
  • nhGzvxBcXxwQg
    Very good site. Thanks!, <a href="http://bikroom.co.tv/admitidos-univers/dedsthoth.h...
    by cheap prom dresses 2010(匿名) on 2010/3/16 3:17:22
  • re:SharePoint 2010新体验10 - 文档评分
    @hao SharePoint 2010是内置的。WSS 3.0的有第三方工具实现类似的功能。
    by kaneboy(匿名) on 2010/3/15 23:56:52
  • re:SharePoint 2010新体验10 - 文档评分
    涂老师呀,这个功能是内置的还是第三方的呀?如果是第三方的,怎么没有下载点呀?! 还有,可不可以在WSS3中实现呀?
    by hao(匿名) on 2010/3/15 21:27:30
  • aXEOfuczpGJ
    Nice site. Thank you., <a href="http://tobovibu.angelfire.com/fiddler-8b/map.html&am...
    by miss il 2010(匿名) on 2010/3/14 4:39:10
  • rASlKTZvzQNHBKjko
    Very good site. Thanks!, <a href="http://wubibuz.tripod.com/barn-kidfa/onloremacend....
    by horse racing pick(匿名) on 2010/3/14 1:16:42
  • uPEaKxFwQmvylJcyld
    Very good site. Thanks!, <a href="http://usuarios.multimania.es/qujimeh/2010-monad/m...
    by latest songs 2010 list(匿名) on 2010/3/13 8:17:22
  • TFmptavYRfzLZZsajHV
    Nice site. Thank you., <a href="http://usuarios.multimania.es/guropin/pizza-noae/map...
    by pavitra rishta 11 january 2010(匿名) on 2010/3/13 4:54:06
  • AecAqkJdZqcodEzyT
    Nice site. Thank you., <a href="http://usuarios.multimania.es/zewiler/new-regg46/ron...
    by grammys 2010 red carpet arrivals(匿名) on 2010/3/13 2:41:40
  • oYYuhOkPwCVBgmvT
    Nice site. Thank you., <a href="http://usuarios.multimania.es/juputow/faschingd0/hod...
    by stat holidays canada 2010(匿名) on 2010/3/13 1:34:54
  • jcFlYYBsXW
    Nice site. Thank you., <a href="http://usuarios.multimania.es/noqihaw/serenata3b/fon...
    by how much snow will delaware get on 0205(匿名) on 2010/3/13 0:27:06
  • re:几个小工具
    <p><a href="http://www.moretiffany.com/">tiffany jewelry</a> Choose, buy...
    by sibat0705(注册) on 2010/3/12 20:48:39
  • re:我在SharePoint 2010 Day上做的一个演示课程
    &lt;a href=&quot;http://www.moretiffany.com&quot;&gt;tiffany jewelry&lt;/a&g...
    by sibat(匿名) on 2010/3/12 20:44:28
  • re:我在SharePoint 2010 Day上做的一个演示课程
    tiffany jewelry Choose, buy and shop for on sale tiffany jewelry including Tiffany &amp; Co Silv...
    by sibat(匿名) on 2010/3/12 20:43:55
  • re:为SharePoint 2010创建Application Page
    tiffany jewelry Choose, buy and shop for on sale tiffany jewelry including Tiffany &amp; Co Silv...
    by sibat(匿名) on 2010/3/12 20:41:36
  • re:SharePoint服务器连接配置数据库的连接字符串保存在哪里?
    tiffany jewelry Choose, buy and shop for on sale tiffany jewelry including Tiffany &amp; Co Silv...
    by sibat(匿名) on 2010/3/12 20:41:18
  • re:SharePoint服务器连接配置数据库的连接字符串保存在哪里?
    tiffany jewelry Choose, buy and shop for on sale tiffany jewelry including Tiffany &amp; Co Silv...
    by sibat(匿名) on 2010/3/12 20:40:46
  • GgrmjyrOzGQuTzL
    Very good site. Thanks!, &lt;a href=&quot;http://kofovoy.tripod.com/olympic-55/map.html&...
    by the energy show 2010(匿名) on 2010/3/12 4:08:58
  • dUUdDpkufOWSyzVtTpj
    Nice site. Thank you., &lt;a href=&quot;http://qaqodiq.tripod.com/salut-boe4/map.html&qu...
    by free virus removal windows 2010(匿名) on 2010/3/12 3:04:49
  • RUMxxmTcrgNYlOOZKpr
    Nice site. Thank you., &lt;a href=&quot;http://keladap.tripod.com/almasae-2f/map.html&qu...
    by costa croisieres 2010(匿名) on 2010/3/12 3:04:40
  • uwRyyEISfsepvT
    Nice site. Thank you.,
    by name(匿名) on 2010/3/9 9:31:43
  • qSdYCESfFoly
    Very good site. Thanks!,
    by name(匿名) on 2010/3/9 6:21:29
  • tgjKggthOUYDbh
    Very good site. Thanks!, &lt;a href=&quot;http://iyuqaba.tripod.com/lisa-lan98/map.html&...
    by who does the bachelor jake pick spoiler(匿名) on 2010/3/9 5:21:35
  • bNrIymrsBAnelvDFZ
    Nice site. Thank you., &lt;a href=&quot;http://ijopawu.tripod.com/who-inve4b/map.html&qu...
    by howard finster(匿名) on 2010/3/9 4:16:31
  • EApAUSdhdQFdMIRlACa
    Nice site. Thank you., &lt;a href=&quot;http://ijopawu.tripod.com/who-inve4b/map.html&qu...
    by bob sanders injury report(匿名) on 2010/3/9 4:16:28
  • DapdIwqkOlozuGtwDzM
    Very good site. Thanks!, &lt;a href=&quot;http://jepaguxo.tripod.com/2010-repa4/map.html&...
    by juegos de smackdown vs raw 2010(匿名) on 2010/3/9 3:13:44
  • GDZRZpdRSvUenVA
    Nice site. Thank you., &lt;a href=&quot;http://jepaguxo.tripod.com/2010-repa4/map.html&q...
    by jan 2010 geoeye stock(匿名) on 2010/3/9 3:13:28
  • TgknaovWqBSVJZYCJ
    Very good site. Thanks!, &lt;a href=&quot;http://lejapato.tripod.com/havera-c16/map.html&...
    by kuda na letovanje 2010(匿名) on 2010/3/9 2:11:46

广告

 

在.Net Framework 2.0中,新增了一个名称空间:System.Transactions。从其名字就可以看出来,里面包含了Transaction相关的类。System.Transactions提供了一个“轻量级”的、易于使用的Transaction框架。

在以前,要实现Transaction需要利用EnterpriseServices,让组件从ServiceComponent继承下来。而通过System.Transactions,只要简单的几行代码,不需要继承,不需要Attribute标记,呵呵。

下面介绍System.Transactions中最简单的(也可能是以后最常见的)用法:

using (TransactionScope ts = new TransactionScope())
{
    // 在这里编写需要具备Transaction的代码
    ts.Consistent = true;
}


TransactionScope类用来构建一个Transaction Scope,在这个Scope里面的代码将具备Transaction的能力。TransactionScope实现了IDisposable,在调用TransactionScope.Dispose()的时候,如果Consistent属性没有被设置成true,那么就将会触发Rollback动作。

using (TransactionScope ts = new TransactionScope())
{
    using (SqlConnection conn = new SqlConnection("..."))
    {
        conn.Open();
    }
    ts.Consistent = true;
}


上面的代码就演示了在一个Transaction Scope里面,打开一个数据库连接。这个数据库连接由于处在一个Transaction Scope里面,所以会自动获得Transaction的能力。如果这里数据库连接的是SqlServer2005,那么这个Transaction将不会激活一个MSDTC管理的Distributed Transaction,而是会由.Net创建一个Local Transaction,性能非常的高。但是如果是SqlServer2000或者7,那么则会自动激活一个Distributed Transaction,在性能上遭受一定的损失。

using (TransactionScope ts = new TransactionScope())
{
    using (SqlConnection conn = new SqlConnection("..."))
    {
        conn.Open();
        using (SqlConnection conn2 = new SqlConnection("..."))
        {
            conn2.Open();
        }
    }
    ts.Consistent = true;
}


这个例子更加充分的说明了Transaction Scope的强大,两个数据库连接!虽然上面的conn和conn2是两个不同的连接对象,可能分别连接到不同的数据库,但是由于它们处在一个Transaction Scope中,它们就具备了“联动”的Transaction能力。在这里,将自动激活一个MSDTC管理的Distributed Transaction。(可以通过打开管理中心里面的组件服务,来察看当前的Distributed Transaction列表。)

下面再介绍如何手动将一项资源(Resource)参与(enlist)到一个分布式事务中:

ICommittableTransaction tr = Transaction.Create();
using (SqlConnection conn = new SqlConnection("..."))
{
    conn.EnlistTransaction(tr as ITransaction);
}
tr.Commit();


上面的代码手工创建了一个ICommittableTransaction对象(通过Transaction类的static方法)。SqlConnection对象通过EnlistTransaction()方法参与到这个Transaction中去。注意:EnlistTransaction()方法只接受ITransaction类型,因为ITransaction没有Commit()方法,你肯定不会希望ICommittableTransaction之外的其他对象来执行Commit()方法吧,呵呵。

参考资源链接:
System.Transactions命名空间
MSDNTV: Introducing System.Transactions in .NET Framework 2.0

打印 | 张贴于 2005-02-15 05:06:00 | Tag:.NET

留言反馈

#回复: System.Transactions介绍 编辑
和msdn上介绍有点出入,在用TransactionScope类时,那里说是一定要用transScope.Complete()的;
2007-07-06 22:59:00 | [匿名:argelice]
#.net数据操作的最佳实践 编辑
.net的数据操作方法和实践实在是太多了,最根本的就是ADO.NET。微软提供了一些最佳实践,比如OracleHelper和企业库;同时也有大量的第三方的O/RMapping解决方案,比如:Hibernate,Castle等等,在asp.net2.0推出后,微软又提供了typed dataset和DataObjectSource的解决的数据存取方法。由于项目经验的限制,所以只能说是本人的实践经验。
2007-06-04 17:50:00 | [匿名:钱彦云]
#模仿System.Transactions建一个轻量级的ORACLE数据库事务范围管理 编辑
但是这个框架只支持SQLSERVER,不支持ORACLE。在一个客户要求必须用ORACLE作后台数据库的项目中,我模仿该框架作了一个支持ORACLE的。Transactions提供了一个“轻量级”的、易于使用的Transaction框架。
2007-05-24 15:52:00 | [匿名:xugq]
#回复: System.Transactions介绍 编辑
请问楼主:

using (TransactionScope ts = new TransactionScope())
{
using (SqlConnection conn = new SqlConnection("..."))
{
conn.Open();
Method2();
}
ts.Consistent = true;
}
public static void Method2()
{
//创建一个记录文件log.txt
}
请问这样一个事务模型,回滚事务时能否回滚Method2做作的文件修改?
2007-05-24 13:42:00 | [匿名:downmon]
#回复: System.Transactions介绍 编辑
transactions支持oraclecommand吗
我每次测试都报Unable to load DLL 'oramts.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)这个错

请问如何解决,谢谢

lwj.net@163.com
2007-03-01 17:31:00 | [匿名:LeeWenjie]
#回复: System.Transactions介绍 编辑
一旦用到dtc就需要分布式事务协调吧?
是否依旧需要域控制器进行分布式事务的协调?
TransactionScope可否在没有域控制器的情况下(或不在一个域内)进行?
2007-02-19 01:23:00 | [匿名:Celise]
#回复: System.Transactions介绍 编辑
ICommittableTransaction tr = Transaction.Create();
老大:我怎么找不到transaction的这个方法?
2007-02-10 01:08:00 | [匿名:niannian]
#System.Transactions介绍 编辑
System.Transactions介绍

在.Net Framework 2.0中,新增了一个名称空间:System.Transactions。从其名字就可以看出来,里面包含了Transaction相关的类。 System.Transactions提供了一个“轻量级”的、易于使用的Transaction框架。
2006-12-29 09:06:00 | [匿名:cyn_97]
#re: System.Transactions介绍 编辑
奇怪了, 我沒法 using System.Transactions
2006-11-08 02:04:00 | [匿名:ChiMing]
#ASP .Net 2.0事务处理 编辑
系统比较复杂,更新多个表,所以需要使用事务处理https://www.microsoft.com/china/msdn/library/webservices/asp.net/dnbdabdasamp...
2006-07-14 10:49:00 | [匿名:OnlyLiu]
#re: System.Transactions介绍 编辑
transactions支持oraclecommand吗
我每次测试都报Unable to load DLL 'oramts.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)这个错
2006-04-17 15:49:00 | [匿名:oracle]
#Net Framework 2.0 事务处理 编辑
Net Framework 2.0 事务处理
2006-03-14 18:19:00 | [匿名:qdzx2008]
#re: System.Transactions介绍 编辑
System.Transactions 对Oracle起作用吗?
2005-12-29 11:04:00 | [匿名:Luke]
#re: System.Transactions介绍 编辑
It's great!
2005-09-12 19:40:00 | [匿名:James]
#re: System.Transactions介绍 编辑
我在我的网站上引用了您的文章
2005-08-12 12:07:00 | [匿名:编写人生]
#re: System.Transactions介绍 编辑
我想在事务开始的时候,把我将要用大的所有的表全部锁住,怎么用?
2005-05-20 16:00:00 | [匿名:jerry]
#re: System.Transactions介绍 编辑
>如果这里数据库连接的是SqlServer2005,那么这个Transaction将不会激活一个MSDTC管理的Distributed Transaction,而是会由.Net创建一个Local Transaction,性能非常的高
对于2005,transaction是由LTM管理,而不是distribute transaction, 性能非常的高。如果这个transaction随后访问了durable resource manageer,这个transaction会被传递给resource manager 管理,性能上就是一个普通的local transaction,如果这个transaction访问了多个durable resource manage,这个transaction就会被传给DTC,就是被promote成了一个真正的 distribute transaction。
2005-03-22 17:40:00 | [匿名:XT]
#请问kane大哥成为MVP的条件是什么? 编辑
如何成为MVP?
2005-02-18 13:33:00 | [匿名:yoyo]
#re: System.Transactions介绍 编辑
好东西啊,就是不知道是否支持层级事务呢?

LOSTINET大哥模拟的那个层级事务就挺有创意的哦,呵呵
2005-02-16 11:10:00 | [匿名:cnlamar]
#re: System.Transactions介绍 编辑
kao,我的SqlScope要过期了....~~~~

不过不知道这个TransactionScope支持不支持子事务的回滚。..

2005-02-15 11:57:00 | [匿名:Lostinet]
#re: System.Transactions介绍 编辑
Maybe someday, I can understand this... but, maybe just maybe....:)
2005-02-15 09:49:00 | [匿名:Maybe]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0