我有一个BizTalk服务器和BizTalk通过WCF-SQL向其发送消息的SQL服务器。 BizTalk服务器已经调用了该服务器超过一年没有问题。我今天早上突然不能来(星期五工作)。由于通讯问题,MSDTC事务管理器无法将事务推送到目标事务管理器
完整的错误调用WCF-SQL端点时,我得到的是:
A message sent to adapter "WCF-SQL" on send port "MyPort" with URI "mssql://mySQLServer" is suspended.
Error details: System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException:
The MSDTC transaction manager was unable to push the transaction to the destination transaction manager due to communication problems.
Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Exception from HRESULT: 0x8004D02A)
at System.Transactions.Oletx.ITransactionShim.Export(UInt32 whereaboutsSize, Byte[] whereabouts, Int32& cookieIndex, UInt32& cookieSize, CoTaskMemHandle& cookieBuffer)
at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
我已经按照从下列线说明: MSDTC on server 'server is unavailable
我已经运行msdtc -uninstall
然后msdtc -install
并重新启动服务数次。
我重新启动了服务器几次。
我可以连接到使用SQL Server Management Studio中的数据库试图从SQL服务器连接到在BizTalk Server结果时
DTCPing(当DTCPing上在BizTalk运行):
Problem:fail to invoke remote RPC method
Error(0x6BA) at dtcping.cpp @303
-->RPC pinging exception
-->1722(The RPC server is unavailable.)
RPC test failed
从BizTalk将SQL当我得到这个(甚至认为DTCPing是在另一端运行)
Please refer to following log file for details:
C:\Temp\DTCPing\myserv.log
Invoking RPC method on dbaditest
RPC test is successful
++++++++++++RPC test completed+++++++++++++++
Please start PING from dbaditest to complete the test
既不服务器正在运行防火墙
我完全没有办法尝试。
编辑:我可以确认其他服务器/计算机可以连接到SQL服务器。所以我必须假设它是BizTalk服务器是问题所在。
编辑2:我试图从BizTalk Server连接到网络上的另一个SQL服务器,并得到相同的错误。我瞬间从投掷我的手,重建我的开发环境了 - 雪地:(
编辑3:我可以从BizTalk到SQL Server telnet到135端口,所以没有什么阻止它
。编辑4: DTCTester结果:
tablename= #dtc24449
Creating Temp Table for Testing: #dtc24449
Warning: No Columns in Result Set From Executing: 'create table #dtc24449 (ival int)'
Initializing DTC
Beginning DTC Transaction
Enlisting Connection in Transaction
Error:
SQLSTATE=25S12,Native error=-2147168242,msg='[Microsoft][ODBC SQL Server Driver]Distributed transaction error'
Error:
SQLSTATE=24000,Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid cursor state
Typical Errors in DTC Output When
a. Firewall Has Ports Closed
-OR-
b. Bad WINS/DNS entries
-OR-
c. Misconfigured network
-OR-
d. Misconfigured SQL Server machine that has multiple netcards.
Aborting DTC Transaction
Releasing DTC Interface Pointers
Successfully Released pTransaction Pointer.
要确认,您已经重新启动了BizTalk和SQL服务器? – Gruff
当此问题开始时BizTalk或SQL服务器端发生任何更改,如修补程序或其他内容后重新启动。您是否可以验证MSDTC配置,如链接所示:https://msdn.microsoft.com/zh-cn/library/aa544733(v=cs.70).aspx –
我添加了一个编辑。这是BizTalk服务器的问题。据我所知,没有任何改变。这是一个开发环境,当我离开它时,所有的东西都还在(我所有的窗口,Visual Studio仍然打开)。 – Bensonius