【问题标题】:Where do I get tracefmt.exe? And how do I read my MSDTC traces?我从哪里获得 tracefmt.exe?以及如何读取我的 MSDTC 痕迹?
【发布时间】:2009-08-25 17:00:45
【问题描述】:

我关注 the KB article from MS 是为了打开 MSDTC 跟踪。不幸的是,这很难理解,因为它没有假设读者有一个非常合理和明显的期望,特别是“我如何阅读这个二进制日志文件?”我也阅读了this page from MSDN,我发现我无法读取日志文件,因为我缺少一些名为tracefmt.exe 的可执行文件,而且我显然是唯一遇到此问题的人。

因此我的问题是:为什么我没有 tracefmt.exe,我从哪里获得它? 或者,直截了当:如何阅读我的 MSDTC 跟踪日志?

【问题讨论】:

  • Thomas Bratt 建议的方法帮助我解决了这个问题(将 exe 从 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64 复制到 Trace 文件夹) .

标签: windows msdtc


【解决方案1】:

安装 Visual Studio 2010 后,我在以下位置找到了该工具:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\TraceFmt.exe

然后我将 .EXE 复制到以下位置:

C:\Windows\System32\Msdtc\Trace

然后运行如下:

TraceFmt.exe dtctrace.log.2012-06-13-10-38-57-0601-00

虽然我大部分时间都是用msdtcvtr.bat,如下:

C:\Windows\System32\Msdtc\Trace\msdtcvtr.bat -tracelog dtctrace.log.2012-06-13-10-38-57-0601-00

【讨论】:

  • 节省下载任何东西,尤其是庞大的驱动程序包。
  • 我刚刚将 TraceFmt.exe 从另一台服务器复制到同一文件夹,您可以直接使用或与批处理文件一起使用。像冠军一样工作!!!
【解决方案2】:

为了节省下载所有 WDK (600MB+) 的费用,仅下载 200KB 的文件,我通过执行以下操作选择了 4.7MB 的下载:

  1. 从这里下载“Windows XP Service Pack 2 支持工具”:http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en
  2. 如果从 XP 运行,只需解压即可
  3. 如果从 2003 开始​​运行(像我一样),您会收到一条错误消息,指出只能在 XP 上安装。因此,要解决此问题,请改用工具提取 exe。
  4. exe 里面会有一个support.cab,把它的内容解压出来
  5. 查找这两个文件,tracefmt.exetraceprt.dll。将这些复制到您的 %windir%\system32\msdtc\trace 目录

【讨论】:

  • 它一直告诉我 traceprt.dll 丢失但该 dll 在路径中。我也尝试使用 regsvr32 注册它,但没有成功。
  • 这似乎不适用于 Windows 7 x64(即使在将 traceprt.dll 添加到 C:\Windows\SysWow64 之后,它也会停止抱怨 dll)。不过,使用 Windows DDK 中的 amd64 版本的 tracefmt.exe 可以正常工作。
  • 已确认:它不适用于 Windows 7 x64,但从 amd64 文件夹中提取的 tracefmt.exe 即使使用 Intel 处理器也能神奇地工作
【解决方案3】:

Windows Driver Kit (WDK) 中提供了tracefmt(和更易于使用的traceview)。可在此处获得:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11800。它在 WDK 中,因为这种跟踪技术更常用于设备驱动程序中。

【讨论】:

  • 谢谢!我希望记录 MSDTC 的人能包含这个重要的细节,而不是一直将其称为“SDK”
  • 如果您不想安装整个 SDK,请挂载 ISO 文件,转到 WDK 文件夹并找到文件 trackingtool_x64fre_cab001.cab(x86 或 ia64 取决于您的架构)并解压文件_tracefmt.exe_00002 复制到您选择的文件夹中。将文件重命名为 tracefmt.exe 就完成了。
【解决方案4】:

DTC 追踪

分布式服务支持团队博客更详细地介绍了how to trace the DTC

Windows 驱动工具包

已接受答案中的链接似乎已损坏。我找到了Windows Driver Kit homepagecurrent download link

下载 ISO 并进入安装屏幕 Microsoft Windows Driver Kit 后,从完整开发环境中仅选择工具。 tracefmt.exe 位于<install-path>\<version>\Tools\tracing\i386确保从 64 位或 32 位目录复制 tracefmt.exe 版本!

上面的博主将这些文件移到了 DTC 文件夹 %systemroot%\MsDtc\Trace,可能是在 msdtcvtr.bat 路径中。

【讨论】:

  • 如果生成跟踪的服务器是 64 位机器,则需要使用 x64 版本的 exe。
【解决方案5】:

在从上述帖子(和其他地方)中搜索 tracefmt.exe 和 traceprt.dll 后,我发现您需要 64 位版本的工具才能在 Windows Server 2008 上运行该程序。

我找到了this blog post

发现如果您安装了 Visual Studio,您应该能够在本地计算机上找到 exe 和 dll 的 64 位和 32 位版本:

  • ProgramFiles\Microsoft SDKs\Windows\v6.0A\Bin\(32 位)
  • ProgramFiles\Microsoft SDKs\Windows\v6.0A\Bin\x64\(64 位)

【讨论】:

  • 适用于 VS 2008,我很幸运地找到了。不幸的是,在带有 VS 2010 和 VS 2012 的系统上,我在Program Files 下(不再有Microsoft SDKs 子文件夹)和Program Files (x86) 下都找不到它,他们似乎已经移动了它。
【解决方案6】:

【讨论】:

    【解决方案7】:

    您应该经常使用现有的 *.mof 文件来编码跟踪文件。 在 C:\Windows\System32\Msdtc\Trace\ 你可以看到 msdtctr.mof。 这个文件有跟踪文件的描述,你需要像这样使用它:

    tracefmt log_filename -tmf msdtctr.mof
    

    【讨论】:

      【解决方案8】:

      我发现 Darren 和 Thomas Bratt 的回答很有帮助,但为了使用 tracefmt 成功解析 DTC 文件,我必须提供 tmf 参数:

      tracefmt -tmf msdtctr.mof dtctrace.log
      

      否则每个事件都会变成这样的

      Unknown( 21): GUID=75f91e0e-d50c-47c9-b06f-3f2013e9da73 (No Format Information found).
      

      【讨论】:

        猜你喜欢
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-30
        • 2012-01-21
        • 1970-01-01
        相关资源
        最近更新 更多