SQL SERVER Msg 7391解決方法

hexiaomail發表於2009-07-01

Msg 7391, Level 16, State 2, Procedure GetTaskList_sp, Line 53

The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "TeamplateDB_LINK" was unable to begin a distributed transaction.

解決過程:

1、首先想到檢視本地配置,

exec  sp_configure 'show advanced options',1

go

RECONFIGURE with override

go

開啟高階選項,將如下配置設定為1

'remote access', 'remote admin connections', 'remote proc trans'

錯誤仍然出現。

 

1、 按照網上的幫助,檢查Appalication ServerDTC元件是否已安裝。

開啟Control Panel--àAdd/Remove Programs--àAdd/Remove Windows Componats --àApplication Server,選擇Details..然後檢視Enable Network DTC AccessEnable Network COM+ Access是否已勾選,但這兩項都已安裝。

 

2、 檢查Distributed Transaction Coordinator服務是否已啟動;

 

3、 MSDTC設定是否正確:

run中執行:dcomcnfg

Component Services對話方塊中展開Console root--àComponent Services--àComputers--àMy Computer,右擊My Computer選擇Properties.

Detfaulter Properties 選項卡中,選取”Enable Distributed COM on the computer”,可以選取”Defaulter Authentication Level:”connect,”Defualt Impersonation Level:”Identify.

 

MSDTC 選項卡中,press "Security Configuration..." button and then select what you need.

確保選中了下列選項:

Network DTC Access

Allow Remote Clinets Allow Remote Admnistration

Allow Inbound Allow OutBound

Enable Transaction Internet Protocal(TIP)Transactions

Enable XA Transactions

DTC Logon Account一定要設定為NT Authority\NetworkService

 

選擇No Authentication Required

 

7.檢查兩臺伺服器但都在同一域中,網上有提到是否為可信任的連線,經測試,nbtstat –a IP 無法獲得對方伺服器的計算機名,相信與這個有關,所以在Hosts做一個映像:c:\windows\system32\drives\etc\hosts.

 

曾經一次出現之類問題時完成第7步就OK了!

 

8. 有一次出現7391錯誤時經過上述檢查,仍然有錯誤,做如下命令即成功了!

EXEC sp_addserver '遠端伺服器名'

exec sp_setnetname  '遠端伺服器名','網路伺服器名'

(sys.servers 中的網路名稱設定為用於遠端 SQL Server 2005 例項的實際網路計算機名,該過程可用於啟用對計算機)的遠端儲存過程呼叫執行)

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9932141/viewspace-608037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章