Domanda

Vorrei sapere in fase di esecuzione in quale dei diversi processi host in esecuzione il mio codice corrente. I processi host hanno configurato i nomi a livello di gestione Biztalk, ma devo sapere in quale processo mi trovo all'interno del codice.

Non ho trovato alcun modo supportato per farlo e sono persino bloccato nella ricerca di un metodo non supportato :-)

Modifica: grazie a tomasr per la risposta. Ne avrei bisogno principalmente per scopi di registrazione / traccia. Non solo per visualizzare l'host in cui è in esecuzione l'ode, ma anche per determinare il livello di traccia appropriato.

Ciò significa anche che ho bisogno di questo in profondità a livello di biblioteca e deve essere veloce. Non posso andare a chiamare lo stack di chiamate, ad esempio, per scoprire in quale componente di primo livello (orchestrazione, pipeline, qualunque cosa) il codice è in esecuzione.

D'altra parte, ho potuto capirlo solo una volta in un costruttore singleton. Sarebbe chiamato una volta per AppDomain e quindi potrebbe richiedere un po 'di tempo per cercare le cose. Ma probabilmente non ho uno stack di chiamate molto significativo lì, quindi siamo di nuovo al punto di partenza: - /

Modifica2: il DB di gestione Biztalk deve contenere le informazioni di cui ho bisogno. Sa quali host vengono avviati su quale server e (probabilmente) l'id di processo di questi processi host. Se qualcuno ha un puntatore da cui posso iniziare a guardare lì, anche questo mi aiuterebbe.

È stato utile?

Soluzione

Per quanto ne so, non esiste alcuna " semplice " modo di farlo. Un modo (un po 'arretrato) per ottenere tali informazioni sarebbe quello di utilizzare l'API ExplorerOM per interrogare i dati di configurazione della gestione e capire dove stai eseguendo e in quale host / gestore stai eseguendo.

Ad esempio, se lo stai facendo da un PipelineComponent, potresti cercare il nome della porta nel contesto del messaggio e cercarlo usando ExplorerOM. Quindi, utilizzalo per eseguire una query sul gestore associato all'adattatore e da lì ottenere il nome host. Sarebbe qualcosa di simile per l'orchestrazione, sebbene tu cerchi il nome completo dell'orchestrazione.

Per curiosità, perché hai bisogno di queste informazioni?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top