Home .NET A big old surprise from HP

A big old surprise from HP

by admin

Joining a new project, developing and maintaining a long-lived program, I decided to upgrade my laptop. For a long time I wanted to buy something so compact and lightweight, so I could easily take it with me to the coffee house to work for an hour or two outside the office.

I chose HP 14” laptop with screen supporting 1920×1080 resolution which was the main criterion of my choice. The hardware seems to be good but HP software made me wonder if I really needed it.


The functionality of the program to work with, as I said, is long lived, i.e. it has gone through many iterations, changes of managers and developers and is such a mix of everything right, understandable and incomprehensible with the status "Why was it needed? All in all, good code.

So, one of the features of the functionality is the use of distributed transactions. I.e. MSDTC service (aka Distributed Transaction Coordinator) should be running on your computer and corresponding settings should be enabled.

Everything seems to be fine. The other team members (they don’t use HP) have the project compiled, running, and working out all the scenarios. The work is in full swing.

Okay. I take my brand new HP, set up, install, download, compile, run, run scripts and bam, error :

System.Data.SqlClient.SqlException (0x80131904):MSDTC on server 'MALS-K9CA69NU' is unavailable.at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean dataReady)at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()at System.Data.SqlClient.SqlDataReader.get_MetaData()at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest)at System.Data.SqlClient.TdsParser.GetDTCAddress(Int32 timeout, TdsParserStateObject stateObj)at System.Data.SqlClient.SqlInternalConnectionTds.GetDTCAddress()at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal connection)at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal connection)at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal connection)at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)at System.Data.SqlClient.SqlConnection.Open()at ...

Okay. Things happen. I start digging.

After spending hours removing antivirus, disabling firewall, using all recommendations from Internet, the problem persists. Error keeps popping up.

Exploring another post Error:8004E00F when trying to access COM+ Applications in Component Services Stumbled on the comment, thanks to tsd.

A big old surprise from HP

Okay. Disable services that begin with HP, there are few of them:

A big old surprise from HP

Disabling the first "HP Analytics service" gives results. Everything just starts working. MSDTC works fine, all scripts run successfully.

So who are you, HP Analytics service? See the full path and executable name of the :


All you have to do is type Touchpoint Analytics Client to read all about good about this program and how they stubbornly try to remove it.

Briefly, from what I can read on the Internet, HP Analytics service(aka TouchpointAnalyticsClientService.exe, aka HP Touchpoint Analytics, aka TAInstaller.exe, etc.) is a program that HP uses to take telemetry from your computer and send it to HP. The main peculiarity of its work is that it spoils the life of HP users, either by loading the processor, or, here, by breaking MSDTC.

To summarize

There is a problem with MSDTC operation.

Symptomy :

  • You have an HP computer.
  • You have a persistent error "System.Data.SqlClient.SqlException (0x80131904): MSDTC on server ‘server name’ is unavailable.quot
  • You also get the error "8004E00F when trying to access COM+ Applications in Component Services" when working with Component Services, ( See id. ).
  • Availability of a working HP Analytics service.

Fast solution :

  1. Run the utility System configuration :
    A big old surprise from HP
  2. In services, disable HP Analytics service :
    A big old surprise from HP
  3. Reboot computer.

You may also like