2008-09-26 4 views
0

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

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

Edit: Благодаря tomasr для ответа. Мне это понадобилось бы в основном для ведения журнала/трассировки. Не только для отображения хоста, на котором работает ode, но и для определения соответствующего уровня трассировки.

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

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

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

ответ

1

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

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

Из любопытства, зачем эта информация нужна?