外部程序調用跨數據庫的語句時:該事務管理器已經禁止了它對遠程/網絡事務的支持


在一些工廠ERP之外的程序中,由於一些外部的資料導入,需按一定的規則推送到工廠的ERP數據庫中。

不同的服務器與數據庫之前是通過鏈接服務器做為橋梁交互的。而鏈接服務器中,首先需設定RPC遠程調用。

設定好鏈接服務器后。腳本在數據庫中也運行正常(腳本本身有跨服務器,數據庫交互)。但如果在程序直接調用,同會產生如下錯誤:

由於沒有可替代的方案去繞過這一問題。只能解決這一問題。

解決辦法(僅供參考):

1.雙方啟動MSDTC服務 MSDTC(分布式交易協調器),協調跨多個數據庫、消息隊列、文件系統等資源管理器的事務。該服務的進程名為Msdtc.exe,該進程調用系統Microsoft Personal Web Server和Microsoft SQL Server。該服務用於管理多個服務器 . 位置:控制面板--管理工具--服務--Distributed Transaction Coordinator 依存關系:Remote Procedure Call(RPC)和Security Accounts Manager

由於兩台服務器,一台是2003,另一台是2008.現分別列出其配置方案。

解決辦法:

(1)在windows控制面版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動

(2)在CMD下運行"net start msdtc"開啟服務后正常。

注:如果在第1步Distributed Transaction Coordinator 無法啟動,則是因為丟失了日志文件,重新創建日志文件,再啟動就行了。重新創建 MSDTC 日志,並重新啟動服務的步驟如下: (1) 單擊"開始",單擊"運行",輸入 cmd 后按"確定"。 (2) 輸入:msdtc -resetlog (注意運行此命令時,不要執行掛起的事務) (3) 最后輸入:net start msdtc 回車,搞定!

一台電腦做如下配置(windows2003系統):

2. 單擊“添加/刪除 Windows 組件”。

3. 選擇“應用程序服務器”,然后單擊“詳細信息”。

4. 選擇“啟用網絡 DTC 訪問”,然后單擊“確定”。

5. 單擊“下一步”;單擊“完成”。

6. 在"開始"->"運行"中輸入dcomcnfg.exe啟動"組件服務"。

7. 右鍵“我的電腦”->“屬性”,在MSDTC選項卡中,點擊“安全配置”按鈕。

8. 在安全配置窗口中做如下設置:

(1)選中“網絡DTC訪問”

(2)在客戶端管理中選中“允許遠程客戶端”“允許遠程管理”

(3)在事務管理通訊中選“允許入站”“允許出站”“不要求進行驗證”

(4)保證DTC登陸賬戶為:NT Authority\NetworkService 

(5)單擊"確定"。這樣將會提示您"MS DTC 將會停止並重新啟動。   

所有的依賴服務將被停止。請按'是'繼續"。單擊"是"繼續。

9. 關閉網絡防火牆(或者開放相應的端口135或用services.msc打開服務啟動TCP/IP NetBIOS Helper服務)

 

另外一台電腦做如下配置(windows2008系統):

2. 單擊“控制面板”。

3. 打開“程序和功能”。

4. 單擊“打開或關閉windows功能”。

5. 展開“角色”->“應用程序服務器”->“組件服務”->右鍵“本地DTC”

6. 選擇“本地DTC”的“安全選項卡”,做如下設置:

(1)選中“網絡DTC訪問”

(2)在客戶端管理中選中“允許遠程客戶端”“允許遠程管理”

(3)在事務管理通訊中選“允許入站”“允許出站”“不要求進行驗證”

(4)保證DTC登陸賬戶為:NT Authority\NetworkService 

(5)單擊"確定"。這樣將會提示您"MS DTC 將會停止並重新啟動。   

所有的依賴服務將被停止。請按'是'繼續"。單擊"是"繼續。

7. 關閉網絡防火牆(或者開放相應的端口135或用services.msc打開服務啟動TCP/IP NetBIOS Helper服務)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM