【问题标题】:How to figure out the current Biztalk Host Process如何找出当前的 Biztalk 主机进程
【发布时间】:2008-09-26 09:20:52
【问题描述】:

我想在运行时知道我当前的代码正在执行的几个可能的主机进程中的哪一个。主机进程已在 Biztalk 管理级别配置名称,但我需要从代码内部知道我所在的进程。

我没有找到任何受支持的方法来执行此操作,我什至一直在寻找不受支持的方法:-)

编辑:感谢 tomasr 的回答。我需要它主要用于记录/跟踪目的。不仅显示运行 ode 的主机,而且确定适当的跟踪级别。

这也意味着,我需要在图书馆层面深入了解它,而且它必须很快。例如,我不能去获取调用堆栈来找出代码正在运行的顶级组件(编排、管道等)。

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

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

【问题讨论】:

    标签: process biztalk


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-14
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多