Pregunta

Me gustaría saber en tiempo de ejecución en cuál de los varios procesos posibles del host se está ejecutando mi código actual. Los procesos del host tienen nombres configurados en el nivel de administración de Biztalk, pero necesito saber en qué proceso estoy dentro del código.

No encontré ninguna forma compatible de hacer esto e incluso me quedo con la búsqueda de un método no compatible :-)

Edit: Gracias a tomasr por la respuesta. Lo necesitaría principalmente para fines de registro / rastreo. No solo para mostrar el host en el que se está ejecutando la oda, sino también para determinar el nivel de rastreo adecuado.

Eso también significa que necesito esto en el nivel de biblioteca y tiene que ser rápido. No puedo ir y obtener la pila de llamadas, por ejemplo, para averiguar en qué componente de nivel superior (orquestación, canalización, lo que sea) se está ejecutando el código.

Por otro lado, podría resolverlo solo una vez en un constructor de singleton. Se llamaría una vez por AppDomain y, por lo tanto, podría tomar un poco de tiempo para buscar las cosas. Pero probablemente no tenga una pila de llamadas muy significativa allí, por lo que estamos de nuevo en la casilla uno: - /

Edit2: el DB de Biztalk Management debe contener la información que necesito. Sabe qué hosts se inician en qué servidor y (probablemente) los identificadores de proceso de estos procesos de host. Si alguien tiene un puntero donde podría comenzar a buscar allí, eso también me ayudaría.

¿Fue útil?

Solución

Por lo que sé, no hay ningún " simple " forma de hacerlo. Una forma (un poco al revés) de obtener esa información sería utilizar la API de ExplorerOM para consultar los datos de configuración de la administración y averiguar dónde está ejecutando y en qué host / manejador está ejecutando.

Por ejemplo, si está haciendo esto desde un PipelineComponent, puede buscar el nombre del puerto en el contexto del mensaje y luego buscarlo utilizando ExplorerOM. Luego, úselo para consultar el controlador asociado con el adaptador y de allí obtener el nombre de host. Sería algo similar para la orquestación, aunque buscaría el nombre completo de la orquestación.

Por curiosidad, ¿por qué necesita esta información?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top