Pergunta

Eu gostaria de saber em tempo de execução em que de várias acolhimento possível processos meu código atual está em execução. Os processos do host tiver configurado nomes ao nível da gestão Biztalk, mas eu preciso saber qual processar Estou no de dentro do código.

Eu não havia nenhuma forma suportada para fazer isso e eu sou mesmo preso com a busca de um método não suportado: -)

Editar: Graças a tomasr para a resposta. Eu precisaria de que, principalmente, para fins de registro / rastreamento. Não só para exibir o anfitrião do ode está sendo executado em mas também para determinar o nível de rastreio apropriado.

Isso significa também, eu preciso disso, no fundo, no nível de biblioteca e tem que ser rápido. Eu não posso ir e obter a pilha de chamadas, por exemplo, para descobrir qual o top-level-componente (orquestração, encanamento, qualquer que seja) o código está sendo executado.

Por outro lado eu poderia descobrir isso apenas uma vez em um construtor Singleton. Isso seria chamado uma vez por AppDomain e, portanto, poderia demorar um pouco para olhar as coisas. Mas eu provavelmente não tem uma pilha de chamadas muito significativo lá, então estamos de volta em uma praça: - /

Edit2: A Gestão DB Biztalk deve conter a necessidade informações. Ele sabe quais hosts são iniciados em qual servidor e (provavelmente) o ID do processo é um desses processos de acolhimento. Se alguém tem um ponteiro onde eu poderia começar a olhar lá, que iria me ajudar também.

Foi útil?

Solução

Tanto quanto eu sei, não há nenhuma maneira "simples" de fazê-lo. Um (um pouco para trás) maneira de obter essa informação seria usar a API ExplorerOM para consultar os dados de configuração de gerenciamento e descobrir onde você está executando e o host / manipulador que você está correndo.

Por exemplo, se você está fazendo isso a partir de um PipelineComponent, você pode olhar para o nome da porta no contexto da mensagem e, em seguida, procurá-lo usando ExplorerOM. Então, o uso que para consultar o manipulador associado com o adaptador e de lá pegar o nome do host. Seria algo semelhante para a orquestração, embora você olharia para o nome de orquestração completa.

Por curiosidade, por que você precisa esta informação?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top