在分布式事务(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://www.cnblogs.com/youring2/archive/2013/01/26/2877918.html,如需转载请自行联系原作者
相关文章
|
4月前
|
Kubernetes Cloud Native 数据库
云原生|kubernetes|k8s下部署SQLServer以及Navicat连接SQLServer报错:远程主机强迫关闭了一个现有的连接 错误的解决
云原生|kubernetes|k8s下部署SQLServer以及Navicat连接SQLServer报错:远程主机强迫关闭了一个现有的连接 错误的解决
92 0
|
SQL 存储 安全
MFC+SQL Server——MFC+ADO操作数据库中的数据
MFC+SQL Server——MFC+ADO操作数据库中的数据
301 0
MFC+SQL Server——MFC+ADO操作数据库中的数据
|
SQL 数据库连接 数据库
C#常见控件与SQL Sever数据库交互
首先,我们采用DataSet作为临时的数据库,这样会比较好
|
SQL 关系型数据库 Oracle
SQLServer通过链接服务器远程删除数据性能问题解决
原文:SQLServer通过链接服务器远程删除数据性能问题解决 在上一遍文章中介绍了SQLServer通过链接服务器访问Oracle性能问题的解决方法,本文介绍链接服务器下远程删除SQLServer数据的性能问题解决 1. 问题发现 系统中有个功能,需要远程删除SQLServer实例的表数据,删除语句中有where条件,条件中有一个子查询。
1343 0
|
存储 数据库连接 数据库
连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法
原文:连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法   本文出处:http://www.cnblogs.com/wy123/p/6110349.html    之前遇到过这么一种情况:   连接数据库的部分Session会出现不定时的阻塞,这种阻塞时长时短,有时候持续较长时间,有时间持续时间较短,没有什么规律。
1527 0
|
存储 SQL Go
数据库和ado连接语句的使用总结
基本的sql语句 创建数据库:CREATE DATABASE database-name 删除数据库:drop database dbname 创建表:create table tabname(字段属性) 删除表:drop table tabname 增加列:Alter table ta...
1171 0
|
存储 安全 Windows
SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 “排队更新” 设置为 “立即更新” 接着在订阅数据库更新表数据,出错: 消息 21079,级别 16,状态 1,过程 sp_getpublisherlink,第 52 行 没有发布服务器的 RPC 安全信息,或该信息无效。
1614 0