Большой старый сюрприз от HP

    Присоединяясь к новому проекту, разработка и поддержание долгоживущей программы, решил обновить себе ноутбук. Давно хотел приобрести себе что-то такое компактное, легкое, чтоб можно было спокойно взять с собой в кофейню, поработать часик-другой вне офиса.


    Выбор пал на ноутбук HP c 14'' экраном, поддерживающим расширение 1920x1080, что и явилось решающим критерием для выбора. Железо вроде хорошее, но вот софт от HP заставляет задумываться, а надо ли оно было.


    История


    Функционал программы, с которым нужно работать, как я уже сказал, долго живущий, т.е. он пережил много итераций, смен руководителей и разработчиков и представляет из себя такой микс всего правильного, понятного и непонятного со статусом "А зачем это было надо?". В общем, хороший legacy код.


    Так вот, одной из особенностью функционала является использование распределённых транзакций. Т.е. на компьютере должен работать сервис MSDTC (он же Distributed Transaction Coordinator, он же Координатор распределённых транзакций) и включены соответствующие настройки.


    Вроде всё хорошо. У других участников команды (они не используют HP) проект компилируется, запускается и отрабатываются все сценарии. Работа идёт полным ходом.


    Хорошо. Беру свой новенький HP, настраиваю, устанавливаю, скачиваю, компилирую, запускаю, прогоняю сценарии и бац, ошибка:


    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 ...

    Хорошо. Всякое бывает. Начинаю копать.


    После потраченных часов, удаления антивируса, отключения брандмауэра (он же firewall), использования всех рекомендаций из интернета проблема остается. Ошибка упорно вылезает.


    Исследуя очередной пост Error: 8004E00F when trying to access COM+ Applications in Component Services натыкаемся на комментарий, спасибо tsd.



    Хорошо. Отключаем сервисы начинающиеся с HP, благо их немного:



    Отключение первого же сервиса "HP Analytics service" даёт результат. Просто всё начинает работать. MSDTC отрабатывает нормально, все сценарии проходят успешно.


    Так кто ты такой, HP Analytics service? Смотрим полный путь и имя исполняемого файла:


    C:\windows\System32\DriverStore\FileRepository\hpanalyticscomp.inf_amd64_19ec9c352a1b5135\x64\TouchpointAnalyticsClientService.exe

    В поисковике достаточно набрать Touchpoint Analytics Client, чтоб начитаться всего хорошего про эту программу и как её упорно пытаются удалить.


    Кратко, судя по записям в интернете, HP Analytics service (он же TouchpointAnalyticsClientService.exe, он же HP Touchpoint Analytics, он же TAInstaller.exe, и т.д.) это программа, при помощи которой HP снимает телеметрию с вашего компьютера и отправляет в HP. Основная особенность её работы в том, что она портит жизнь пользователям HP, то процессор загружает, то, вот, MSDTC ломает.


    Резюмируем


    Присутствует проблема с работой MSDTC.


    Симптомы:


    • У вас компьютер HP.
    • У вас упорно возникает ошибка "System.Data.SqlClient.SqlException (0x80131904): MSDTC on server 'имя-сервера' is unavailable."
    • Также вы получаетет ошибку "8004E00F when trying to access COM+ Applications in Component Services" при работе со Службой компанентов, (см.).
    • Наличие работающего сервиса HP Analytics service.

    Быстрое решение:


    1. Запускаем утилиту Кофигурация системы:
    2. В службах отключаем HP Analytics service:
    3. Перегружаем компьютер.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 35

      +13

      Всегда было правило: Покупаешь комп, сносишь все, а лучше даже ставишь чистую ОС. Все драйвера ставишь по VID, любые официальные дрова (spXXXXXX.exe) разархивируешь и ставишь напрямую из диспетчера устройств. Всякие утилиты и иже с ним ставишь только если надо.


      Весь шлак от производителя надо на законодательном уровне запретить устанавливать без прямого согласия пользователя. Куда смотрит ЕС...

        0
        Согласен, я так и сделаю на серии HP probook 6560b/6570b и elitebook 8560p/8570p
        Косяк может быть если дискретное видео от АМД, но там ставлю драйвера 2013 года и все

        ps windows7
          0
          Делаю аналогично, в дополнение — обязательно чищу (заполняю нулями) и переразбиваю накопитель. После этого ставлю чистую ОС и драйвера, стандартный набор программ, убеждаюсь в корректной работе и делаю резервную копию диска…

          Ни разу не пожалел о снесенных программах от производителя и всяких разделах восстановления (уже больше 4 лет пользуюсь HP 430G3, устраивает).
            +2
            Я понимаю — забивать нулями свои секретные данные, чтобы не утекли, но зачем забивать предустановленный заводской софт, особенно если вы переразбили диск?
              –1
              Забивать нулями диск — чтобы программы для разбивки диска не смотрели на предыдущие параметры. Много раз сталкивался со странными явлениями, если пытаешься просто удалить все разделы, и переразбить диск по-своему — не очищая диск.
              PS: Весь чистить не обязательно, обычно достаточно первые несколько мегабайт затереть.
              0
              Слышал что единицами надёжнее, никогда не пробовал правда…
                0
                Могу предположить, что без разницы ;) Всё равно при записи нулей на уровне пользовательских данных на физическом уровне на диск пишется что-то куда более сложное.
              0
              Куда смотрит ЕС

              Надеюсь, что в книгу Ч. Дарвина «Происхождение видов путем естественного отбора». Юзеры должны думать своей головой. Если же законодательно все запретить, получим… а впрочем, уже почти получили.
                0
                Если человек является, например, отличным хирургом, должен ли он еще и в компах шарить на уровне: драйвера ставишь по VID, любые официальные дрова (spXXXXXX.exe) разархивируешь и ставишь напрямую из диспетчера устройств?
                  0
                  Я знаю нескольких хирургов (именно хирургов), которые умеют ставить драйвера из пакетов. В целом — нет, не должен — но тогда стоит нанять того, что шарит. Третий вариант — его система будет менее устойчива. Это как с автомобилями — если самому не следить и не ездить к механикам, получим ржавое ведро. Но с компьютерами почему-то считается, что они всегда будут работать так, как в самом начале. Запрет же чего-то на законодательном уровне, если оно не является чистым злом (что-то уровня 10-ти заповедей) слишком часто ведет к ограничению прогресса (как вариант — юзеры ленятся, тупеют, и становятся легкой мишенью для тех, кому закон до лампочки).
                    0
                    Snappy Driver
                    0

                    Ну а если не контролировать — получим сотни несовместимых разъемов и десятки АПИ, всякие ASUS Media Bus, Zune и iTunes.


                    Некоторые вещи должны быть прописаны законодательно, например micro USB в качестве разъема для телефона и штекер NN-вида для зарядки ноутбука обязательно на 19в, а так-же, как я считаю, запрет на предустановку любого софта без согласия пользователя. Захотел он накатить винду — ок, +100$ и винда одним кликом. Захотел поставить шлакваре от хапэ/асуса/эмсиай — нажал кнопку "да" на сайте производителя и оно поставилось. Захотел поставить треш-софт на телефон — при первом запуске нажал "да" и ему влилось всякий ибей, амазон, антивирус макафи и тонна всего другого что обычно пихают, и что нормальный человек выгребает, а не продвинутый не может.

                      0
                      Ответил выше — моя мысль про прогресс здесь применима точно так же. Если у продвинутых не будет преимущества перед «нормальными», мы получим гомогенную толпу, потому что стимулов прогрессировать не будет. Со штекерами — дайте рынку решать, он лучше любых госдум разберется, какому разъему выжить.
                        0

                        Рыночное регулирование не работает в таких масштабах. Посмотрите на зоопарк зарядников для мобильников до принятия решения об унификации и micro USB.
                        Массовый пользователь не способен выбирать, для поддержания этой аксиомы существует пару сотен тонн маркетологов.

                          0
                          Поддерживаю, и надеюсь, что при всех его недостатках в ноутбуках приживется USB Type-C с PD для зарядки. Очень хочется избавиться от вязанки зарядников.

                          PS: Еще бы и для электротранспорта мелкого приняли стандарт — а то сейчас там такой зоопарк, ужас берет — штекеры разного диаметра, многоконтактные разъемы на любой вкус. И батареи неплохо бы сразу стандартизировать — а то используют напряжения от 24 до 100 вольт с шагом в 4 вольта…
                            0

                            Type-C слишком мелкий и хрупкий для большой техники + я не знаю можно-ли будет через него 150W протащить. Лично мне более нравился magsafe, который упразднили или обычный двухпиновый штекер с глубоким ходом в 4 или 6мм (как у HP). Еще-б батареи были стандартизированы, ато придумают даже в пределах одной линейки кучу разных...


                            С электротранспортом да, после просмотра ролика Академика где он купил электромашину — прям ощутил боль, хотя я сам щас так-же мучаюсь с бензиновой машиной из США где все чуток по другому.

                  0

                  Слежкой занимаются все, кому не лень )

                  • UFO just landed and posted this here
                      0
                      HP PAVILION 14-ce2010ur. Куплен 2 месяца назад.
                      Проверил, у меня такого сервиса нет…

                      У парней отсюда проблема была в другом сервисе. Их тесткейс проходит?
                      0
                      У HP тонны мусорного софта с не очевидным функционалом. Недавно чистил один такой, задолбался этот мусор удалять, который для обычного пользователя бесполезен, но висит в памяти.
                        0
                        … всегда сношу всё эту вендорную муть, вплоть до драйверов видюх, тач-пад контро-пенел, прочая, прочая.
                          0
                          Проще переустановить чистую ОС. Благо, у HP и аналогичных производителей всякие SLIC зашиты на мамке.
                          +1

                          Софт это еще ладно. Недавно приносили HP ноут, так там на нем чтобы заменить HDD надо ввести сервис-код. Вроде как должны по телефону разблокировать, но ноут довольно старый и сказали что только поездка в СЦ и замена HDD в районе 3к русских рублей.

                          0
                          Вендорную муть не сносил.
                          ProBook 470 G4.
                          А как он обновляться будет?
                          С дисками проблем не было — на место DVD поставил HDD, а внутрь SSD 240G давно.
                          Как часы пару лет уже работает.
                          Правда, корпус разваливается уже.
                          Панелька с клавой — да, это алюминий. Всё остальное — пластик.
                          BIOS с глюками запускается, позорище (сначала было нормально).

                          sym.ru/img/20190816_011119.jpg
                          Надписи исчезли.
                          Два бланковых пробела зачем-то, без пояснений.
                          Помню, там ранее было «Press ESC to enter BIOS».
                          Халатно как-то.
                            +1
                            Просто к сведению, раньше при запароленном биосе саппорт HP высылал smc.bin, сваренный под конкретный серийник, ууид и прочие айди.
                            Кто знает о чем речь — можете забыть, с июня они перестали это делать. Саппорт по телефону злорадно говорит что усё, приплыли тапки до дивана. Но можно заменить материнку, всего-то 500 евро)
                            Т.е. дампить либо перепаивать 2 чипа.
                              0
                              Подскажите плиз, как переустановить на чистую ось, сейчас же установочные диски не поставляются с буком? По ключу оси или из скрытого раздела — а он есть на HP?
                                0
                                Что-то есть, но я особо не шарю.
                                Я покупал с DOS, сразу купил SSD, а на HDD всё снёс.
                                Т.к. опыт «тыжпрограммиста» уже лет 20, накатил сверху Убунту на HDD и поверх Win 10 на SSD (основная лошадка). Торренты в помощь.

                                Если покупали с Win 10, то спросите ТП. Может, ключ на какой-то наклейке на задней крышке.
                                  0
                                  Спасибо. Стоит Win 10, но ключа-наклейки нет, как ни странно. Покупал в Мвидео. Буду думать )
                                    0
                                    В ноутбуках с предустановленной Windows, как правило, в BIOS зашит OEM-ключ.
                                    Вы можете установить ту же редакцию Windows и она автоматически активируются этим ключом.
                                    На сайте MS есть утилита «Media Creation Tool» с помощью которой можно скачать образ и создать загрузочную флешку или диск.
                                      0
                                      Спасибо, не знал про фишку с BIOS.
                                0
                                У нас в конторе в своё время ещё на XP развернули автоматическую установку сертификатов на ноутбуки, и столкнулись с тем, что примерно каждый пятидесятый ноутбук сертификат не получает. Никаких ошибок, ничего в логах — просто не запускает процесс и всё. После серьёзного изучения вопроса обнаружился виновник — софт от считывателя отпечатков пальцев, который устанавливал свою gina.dll (библиотека, рисующая диалог входа в систему). Эта библиотека вызывается из winlogon.exe, и она, ни много ни мало, меняла текущую директорию вызывающего процесса. В результате winlogon.exe терял способность запустить процесс userinit.exe, который и выполняет получение сертификатов, поскольку запускал его, как оказалось, только по имени файла, без пути.
                                  0

                                  Покупаю с дос или просто ставлю сразу свою Федору, уже лет 11 проблем нет.

                                    0

                                    Я не знаю, как это выходит, но тоже сталкивался с проблемами, связанными с неработоспособностью MSDTC.
                                    Ноутбук, но Think Pad, тоже пришлось прибить один сервис — но приехавший с драйвером Azalia Codec сервис Dolby Sound. И сразу заработал MSDTC.

                                    Only users with full accounts can post comments. Log in, please.