Help diagnose problem with MSDTC : The Transaction Manager is not available. (Exception from HRESULT: 0x8004D01B)

Hi,
i’m having this problem since last week, and i run out of ammo to throw at it. It started suddenly, and it only happen on my computer.
I can just say i’ve already tried to both reset and format the PC (Windows 10).

Here is another symptom :
image

Do you guys have any clue on how to diagnose it ? I’ve already tried DTCPing and it works.

Here the exception that happens every time nsb tried to dequeue something from a queue.

2018-12-03 11:50:49.513 WARN NServiceBus.Transport.Msmq.MessagePump MSMQ receive operation failed
System.Transactions.TransactionAbortedException: The transaction has aborted. —> System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. —> System.Runtime.InteropServices.COMException: The Transaction Manager is not available. (Exception from HRESULT: 0x8004D01B)
at System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(String nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean& nodeNameMatches, UInt32& whereaboutsSize, CoTaskMemHandle& whereaboutsBuffer, IResourceManagerShim& resourceManagerShim)
at System.Transactions.Oletx.DtcTransactionManager.Initialize()
— End of inner exception stack trace —
at System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException comException)
at System.Transactions.Oletx.DtcTransactionManager.Initialize()
at System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory()
at System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(TransactionOptions properties)
at System.Transactions.TransactionStatePromoted.EnterState(InternalTransaction tx)
— End of inner exception stack trace —
at System.Transactions.TransactionStateAborted.CheckForFinishedTransaction(InternalTransaction tx)
at System.Transactions.Transaction.Promote()
at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)
at System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction)
at System.Messaging.MessageQueue.StaleSafeReceiveMessage(UInt32 timeout, Int32 action, MQPROPS properties, NativeOverlapped* overlapped, ReceiveCallback receiveCallback, CursorHandle cursorHandle, IntPtr transaction)
at System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan timeout, Int32 action, CursorHandle cursor, MessagePropertyFilter filter, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
at System.Messaging.MessageQueue.Receive(TimeSpan timeout, MessageQueueTransactionType transactionType)
at NServiceBus.Transport.Msmq.ReceiveStrategy.TryReceive(MessageQueueTransactionType transactionType, Message& message)
at NServiceBus.Transport.Msmq.TransactionScopeStrategy.d__1.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NServiceBus.Transport.Msmq.MessagePump.<>c.<b__7_0>d.MoveNext()

Thanks
Valerio

My first thought would be that the MSDTC service is not running or that you firewall issues.

Running dtcping.exe might also shed some light if you haven’t already tried that

Hi,
the service is running, and with networkl service account, and dtcping works.

Have you looked in the windows event log if there are reported issues?

Yes,
there are not directly related events, just some of those, i’ve google some fixes, but without luck.
Problem is, i just tried to reset the pc, and as brand new it exhibit the problem.

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

After a lot of pain, the issue was due the HP Conexant HD Audio Driver, not the driver itself, but the tools that get installed with it… so wierd :frowning:

1 Like

I ran into this issue registering a DLL in Windows 10. Shutting down Dolby DAX service allowed me to register the component. Thanks @valeriob for your suggestion - pointed me in the right direction.

1 Like

It seems audio drivers/windows services by Realtek, Lenovo, HP Conexant, and Dolby DAX API can break MSDTC.

Known services that cause issues:

  • HP Hotkey UWP Service
  • Dolby DAX API Service
  • Lenovo Hotkey Client Loader
  • Lenovo Intelliigent Thermal Solution Service
  • Lenovo Platform Service
  • Lenovo Smart Standby
  • Realtek Audio Universal Service

The following links mention these services or our shared privately by our customers:

Please try locating such similar named services on your machine, disable them, restart your machine, and verify if you are still experiencing this issue.

This issue isn’t caused by NServiceBus but is an system configuration issue.

Thanks to @valeriob and @EdwardMcConnell for your valuable input as other NServiceBus customers are having this same issue.

1 Like

There was another case, exactly like this. The culprit was a Windows Service called “HP Hotkey UWP Service”. Interestingly, these are all HP machines!

On my PC the problem was caused by “HP Network HSA Service”. I had to disable it.

3 Likes

Disabling ‘HP Network HSA Service’ resolved the issue for me also. Thank you gionatan.leardini for sharing this info!

1 Like

We ran into the same problem and had to disable 3 services:

Thanks for this. The service causing me grief was ‘HP Print Scan Doctor Service’. Disabled and it all is back to working.

1 Like