图片 1

MSSQL-并发控制-1-Transaction

当Alwasyon group启用了DTC_SUPPORT = PER_DB,
会导致爱莫能助创设replicaiton.不能修改已经存在的replication.

 

 

  
MSSQL并发调节原先筹算分为多少个部分写:隔开分离等第及锁,写的长河中,发掘必要聊到下事务的相关内容,故增添一篇博文,共3篇。

适用条件

原因:

 

操作系统:windows
二零零零

当当Alwasyon group启用了DTC_SUPPORT =
PER_DB,任何对于DMV的询问都被认为是’user xact’.


数据库:sql
server 2000/sql server 2005

这回导致上面包车型地铁讲话失败


选取链接服务器实行远程数据库访问的情状

begin tran

save tran tran1
select*Fromsys.tables

 

一、  难题现象

在实行分布式事务时,在sql
server 2007下接受如下错误:

消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行

力所不及实行该操作,因为链接服务器 “xxxxx” 的 OLE
DB 访问接口 “SQLNCLI” 不恐怕起动布满式事务。

在sql
server 3000下接受如下错误:

该操作未能推行,因为 OLE
DB 提供程序 ‘SQ英雄联盟EDB’ 不能运转分布式事务。

[OLE/DB
provider returned message: 新业务不可能注册到钦定的事体管理器中。 ]

OLE
DB 错误追踪[OLE/DB
Provider ‘SQ英雄联盟EDB’ ITransactionJoin::JoinTransaction returned
0x8004d00a]。

 

 

   
假若转发,请表明博文来源: www.cnblogs.com/xinysu/ 
 ,版权归 天涯论坛 苏家小萝卜 全部。望各位帮忙!

二、  技术方案

  The 3933 error

 

1.        双方运营MSDTC服务

MSDTC服务提供分布式事务服务,借使要在数据库中动用布满式事务,必得在到场的两端服务器运维MSDTC(Distributed
Transaction Coordinator)服务。

‘Cannot
promote the transaction to a distributed transaction because there is an
active save point in this transaction’


2.        展开双边135端口

MSDTC服务依赖于RPC(Remote
Procedure Call (RPC))服务,RPC使用135端口,保险RPC服务运营,假使服务器有防火墙,保障135端口不被防火墙挡住。  

  使用“telnet
IP 135 ”命令测量试验对方端口是不是对外开放。也可用端口扫描软件(比方Advanced
Port Scanner)扫描端口以判别端口是还是不是开放。

 


3.        保险链接服务器中语句未有访谈发起事务服务器的操作

在倡议事务的服务器施行链接服务器上的查询、视图或存款和储蓄过程中蕴涵访谈发起事务服务器的操作,那样的操作叫做环回(loopback),是不被匡助的,所以要确认保障在链接服务器中不设有此类操作。

Replication的创立/修改语句中山高校量包罗了这种格式的讲话,会变成其停业

   

4.        在事情开头前出席set xact_abort ON语句

对于许多 OLE
DB 提供程序(包蕴 SQL
Server),必得将隐式或体现事务中的数据修改语句中的 XACT_ABORT 设置为 ON。独一无需该选拔的意况是在提供程序帮忙嵌套事务时。

Workaround

  
并发调控,在于调控每四个业务的操作进程以及它们对财富的占用情状,同有时间要保管专业的ACID本性。这里大致描述事务体系、ACID本性及对布满式事务的简便表达。

5.        MSDTC设置

展开“管理工科具――组件服务”,以此展开“组件服务――Computer”,在“小编的管理器”上点击右键。在MSDTC选项卡中,点击“安全配置”按键。

在吴忠布署窗口中做如下设置:

l         选中“网络DTC访问”

l         在顾客端管住中选中“允许远程顾客端”“允许远程管理”

l         在事务管理通信中选“允许入站”“允许出站”“不必要开展说明”

l         保障DTC登录账户为:NT   Authority\NetworkService
图片 1