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

在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://dcx.sybase.com/1200/en/dbprogramming/pg-oledb-oledb-conn-pool.html

本文作者:拓荒者IT

本文链接:https://www.cnblogs.com/youring2/archive/2013/01/26/2877918.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

 

📌做了个微信公众号【拓荒者IT】,分享各种技术干货,新内容首发到公众号,欢迎关注❤️

posted @   拓荒者IT  阅读(707)  评论(0编辑  收藏  举报
皮肤配置 参考地址:https://www.yuque.com/awescnb/user
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起