BizTalk 2016 зависает при импорте определенного файла привязок

Коллега попросил меня посмотреть на сбойную версию приложения BizTalk на одном из наших агентов CI. Короче говоря, после экспорта файла.MSI сценарии развертывания пытаются импортировать файл привязок для приложения. Он просто вращается в течение часа, а затем выдает следующее сообщение об ошибке:

Ошибка: не удалось обновить информацию о привязке. Исключение типа ||'Microsoft.BizTalk.CachingService.NotificationFailedException||' был брошен.

Сценарии используют оснастку BizTalk PowerShell через:

Add-PSSnapin –Name BizTalkFactory.PowerShell.Extensions

Строка с ошибкой выше:

Import-Bindings -Path "BTS:\Applications\$AppToDeploy" -Source "$bindingsFileName"

Это новое приложение с точки зрения конвейера CI. Я попытался запустить один и тот же сценарий на своем локальном компьютере, а также на другом компьютере BizTalk для разработки, и он импортируется без инцидентов.

Также попытался импортировать XML-файл привязки вручную с помощью консоли администрирования BizTalk. Он также висит на коробке CI, но отлично работает на компьютере разработчика.

Пока он зависает, если вы посмотрите на SQL (размещенный на той же машине), процесс заблокирован. Процесс, вызывающий блокировку, не выполняет никаких обновлений, поэтому я предполагаю, что это какая-то блокировка DTC. В BizTalk нет других активных пользователей или приложений SQL. Процессор простаивает, память на 20%, а активность диска довольно мертвая.

Похоже, что-то определенное для машины агента CI для этого нового приложения, просто с недоумением, где искать дальше. Есть ли у BizTalk какие-либо журналы или трассировка, которые я могу включить, чтобы увидеть, где и почему застревает импорт привязки?

PS Импорт привязок для других существующих приложений работает нормально. Если я изменю версию сборки для единственной оркестровки в файле привязок на недопустимую, импорт будет работать нормально, но, очевидно, приложение не будет работать, поскольку эта сборка не существует.

1 ответ

Решение

В заключение! Благодаря некоторым, хотя и провоцирующим идеям от Dijkgraaf, все заработало.

Краткая версия: Запустите агент SQL в окне CI.

Оказывается, у нас есть следующие параметры отслеживания для оркестровки в файле привязок:

TrackingOption="ServiceStartEnd MessageSendReceive InboundMessageBody OutboundMessageBody OrchestrationEvents TrackPropertiesForIncomingMessages TrackPropertiesForOutgoingMessages"

Если этот список был опущен до:

 TrackingOption="ServiceStartEnd MessageSendReceive OrchestrationEvents"

... импорт будет работать. Это заставило меня подумать, что это проблема инфраструктуры отслеживания, побуждающая меня проверять задания агента SQL, которые выполняют обслуживание. Поскольку это агент CI и на самом деле ничто не использует BizTalk функционально, ничто не заботится о том, чтобы проверить работоспособность BizTalk.

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

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам