Вопрос

Я хотел бы знать во время выполнения, в каком из нескольких возможных хост-процессов выполняется мой текущий код.Хост-процессы имеют настроенные имена на уровне управления Biztalk, но мне нужно знать, в каком процессе я нахожусь, изнутри кода.

Я не нашел ни одного поддерживаемого способа сделать это и даже застрял в поиске неподдерживаемого метода :-)

Редактировать:Спасибо tomasr за ответ.Мне это понадобится в основном для целей регистрации/отслеживания.Не только для отображения хоста, на котором запущена ода, но и для определения соответствующего уровня трассировки.

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

С другой стороны, я мог понять это только один раз в одноэлементном конструкторе.Это будет вызываться один раз для каждого AppDomain, и поэтому поиск может занять некоторое время.Но у меня там, вероятно, не очень содержательный стек вызовов, так что мы вернулись к исходной точке :-/

Редактировать2:База данных Biztalk Management должна содержать необходимую мне информацию.Он знает, какие хосты на каком сервере запущены, и (вероятно) идентификаторы процессов этих хост-процессов.Если у кого-то есть указатель, где я мог бы начать искать, это тоже мне помогло бы.

Это было полезно?

Решение

Насколько я знаю, не существует «простого» способа сделать это.Один (несколько обратный) способ получить эту информацию — использовать API ExplorerOM для запроса данных конфигурации управления и выяснения того, где вы выполняете и на каком хосте/обработчике вы работаете.

Например, если вы делаете это из PipelineComponent, вы можете найти имя порта в контексте сообщения, а затем найти его с помощью ExplorerOM.Затем используйте это для запроса обработчика, связанного с адаптером, и получения оттуда имени хоста.Для оркестровки это будет что-то похожее, хотя вам придется поискать полное имя оркестровки.

Интересно, зачем вам эта информация?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top