代码之家  ›  专栏  ›  技术社区  ›  TToni

如何确定当前Biztalk主机进程

  •  0
  • TToni  · 技术社区  · 16 年前

    我找不到任何受支持的方法来执行此操作,我甚至一直在搜索不受支持的方法:-)

    编辑:谢谢托马斯尔的回答。我需要它主要用于日志记录/跟踪目的。不仅要显示ode运行的主机,还要确定适当的跟踪级别。

    这也意味着,我需要在图书馆层面的深层次,它必须是快速的。例如,我无法获取调用堆栈来找出代码运行在哪个顶级组件(编排、管道等)中。

    另一方面,我可以在一个单例构造函数中只计算一次。这将在每个AppDomain中调用一次,因此可能需要一些时间来查找。但我可能没有一个非常有意义的调用堆栈,所以我们回到了起点:-/

    Edit2:Biztalk管理数据库必须包含我需要的信息。它知道哪些主机在哪个服务器上启动,以及(可能)这些主机进程的进程id。如果有人有一个指针,我可以开始看那里,这也会帮助我。

    1 回复  |  直到 16 年前
        1
  •  1
  •   tomasr    16 年前

    据我所知,没有任何“简单”的方法。获取该信息的一种(有点倒退)方法是使用ExplorerOM API查询管理配置数据,并找出执行的位置以及运行的主机/处理程序。

    例如,如果您是从PipelineComponent执行此操作,则可以在消息上下文中查找端口名,然后使用ExplorerOM进行查找。然后,使用它查询与适配器关联的处理程序,并从中获取主机名。与编排类似,不过您需要查找完整的编排名称。

    出于好奇,你为什么需要这些信息?