第一种方法:
调试前的准备:
以管理员身份启动该服务器的web服务
确认客户端用户有权通过成为相应 StreamInsight 用户组中的成员来连接到服务器。
在该调试器中,单击“文件”,然后单击“连接到服务器”。 输入该服务器的端点地址。 已安装 StreamInsight 服务器的默认端点为 http://localhost/StreamInsight/<instance_name>。
如果已正确设置服务器连接,该调试器将在左窗格中显示对象资源管理器。
在“对象资源管理器”中,单击对象层次结构,直到显示要调试的查询。 双击该查询对象。 这将打开如下图所示的查询图。 该图显示示例查询“mouseMoveQuery”当前正在运行。
图 1 - 查看查询图中的查询。
5.要记录在查询中正在处理的事件,请单击“开始记录”按钮。 这将启动如下图所示的记录进程。 花几分钟记录事件,然后单击“停止”。
2.日志跟踪
加载事件流跟踪 (EFT) 或 Windows 事件跟踪 (ETW) 文件
StreamInsight 支持独立和嵌入式服务器部署。 如果应用程序嵌入在服务器中且未启用 Web 服务,则调试器之类的客户端应用程序将无法连接到该服务器。您需要一种机制来调试和诊断在这类情况下运行的查询中的问题。
要为正在运行的 StreamInsight 服务器收集事件跟踪日志,可以使用 StreamInsight 安装中提供的“trace.cmd”实用工具。 以下过程介绍如何创建跟踪文件并将该文件加载到事件流调试器中.
以windows+x命令打开管理员命令提示符,如下图,此处在C:\Program Files\Microsoft StreamInsight 1.2\Tools目录下创建了hello.etl文件。
trace.cmd start hello.etl 创建一个跟踪文件。
执行 StreamInsight 程序进行查询,直到运行足够长时间。
trace.cmd stop hello.etl 结束跟踪
要将生成的文件加载到调试器中,请单击“文件”,然后单击“打开”。 在“打开”对话框中,浏览到 <filename>.etl 的位置,然后单击“打开”。 查询图将如下图所示显示出来。
图 -查看从跟踪文件加载的查询。
将生成的跟踪文件加载到调试器中,同样展开了和实时跟踪类似的图像界面。这里会看到对象资源管理器中的对象并不包含服务器相关的对象。相对于实时跟踪,使用日志式跟踪的好处是不需要连接到服务器,而且比较方便跟踪事件的完整流程,同时因为可以加载多个日志文件,也方便进行对比。
特别要注意的是,trace.cmd 实用工具是基于 Windows Logman 命令的脚本。 Logman 又使用针对 Windows (ETW) 基础结构的事件跟踪来用于事件收集。 在跟踪日志加载过程中,调试器可能会警告您已丢失若干事件。 这是由于 ETW 缓冲区不足和会话设置不当造成的。 若要解决此问题,请在 trace.cmd文件中编辑 Logman 命令并且增加在 -bs 选项中指定的缓冲区大小(例如 -bs 3000)或者增加在 -nb 选项中指定的缓冲区数目。 有关详细信息和示例,请参阅 Logman documentation(Logman 文档)。