在一些工廠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服務)