У меня есть сервер BizTalk и SQL-сервер, который BizTalk отправляет сообщения через WCF-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,
DTCPing при попытке подключиться с сервера SQL к результатам BizTalk Server в (когда 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-серверу в сети и получил ту же ошибку. Я моменты от бросать свои руки и восстановление моего Dev среда - UGG :(
Edit 3: я телнет к порту 135 из BizTalk к SQL Server, так что нет ничего блокировать его
.Edit 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 Server, когда эта проблема началась, например, перезагрузка после исправления или что-то еще. Можете ли вы проверить конфигурацию MSDTC, как указано в ссылке https://msdn.microsoft.com/en-us/library/aa544733(v=cs.70).aspx –
Я добавил редактирование. Это проблема BizTalk-сервера. Насколько я знаю, ничего не изменилось. Это среда разработки, и все было по-прежнему, когда я ее оставил (все мои окна, Visual Studio, все еще открыты). – Bensonius