在分布式事务(MSDTC)中使用OLE DB数据库连接访问数据

当在MSDTC环境中使用OLEDB访问数据库时,可能会遇到“Microsoft.Jet.OLEDB.4.0”提供程序不支持ITransactionLocal接口的问题。本文介绍了解决此问题的方法:通过在连接字符串中添加特定参数来禁用自动事务处理。

在MSDTC中访问OLE DB数据库的时候,会抛出异常,异常信息大概是:"Microsoft.Jet.OLEDB.4.0”提供程序不支持 ITransactionLocal 接口。本地事务不可用于当前提供程序,或者是与基础事务通信失败。

原来,在创建OLE DB数据库连接的时候,默认是打开了事务的(automatic transaction enlistment),所以如果放在MSDTC中会出现上面的错误。

解决的办法是关闭OLEDB的自动事务处理,方法是在连接字符串中加入:

OLE DB Services = -4;

这样一来,不仅仅关闭了事务,还关闭了连接池,如果频繁的操作将会消耗部分性能,还是要慎重使用!

详细的可用服务列表如下:

image

MSDN中关于OLE DB Services的详细介绍:http://msdn.microsoft.com/en-us/library/ms717922(v=vs.85).aspx

 

image




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2013/01/26/2877918.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值