跳到主要内容
← 返回博客

本文涉及的模块: Message Monitor

SAP CPI 消息逐步跟踪:不离开 iFlow 设计器查看每个步骤的内容

SAP CPI 的 TRACE 日志级别记录什么,如何在监控中读取步骤之前的内容,以及如何直接在 iFlow 图表上追踪消息的路径和负载。

SAP CPI 消息逐步跟踪:不离开 iFlow 设计器查看每个步骤的内容

当 iFlow 返回错误结果时,问题几乎总是一样的:在出错的那个步骤之前,消息是什么样子?SAP Cloud Integration(SAP CPI)可以回答这个问题,但只针对以日志级别 TRACE 处理的消息,而且答案在监控里,与您正在编辑的图表隔着好几个界面。

本文介绍 Trace 记录什么、如何在 SAP 自己的监控中读取它,以及如何借助 Kitegra 在图表上逐步查看同一份 Trace。

Trace 记录什么

每条消息都会留下一份消息处理日志(MPL):它的状态、开始和结束时间,以及它运行过的步骤。iFlow 的日志级别决定其中包含多少细节。

日志级别消息处理日志保存的内容
Info总体状态、耗时,以及错误(如有)
Debug消息运行过的每个步骤各有一条记录
Trace与 Debug 相同,另外还有每个步骤之前的消息体、header 和 exchange property

Trace 内容用于排查问题,而不是用于存档。SAP 大约保留它一小时,而 TRACE 级别本身约 10 分钟后就会回落,因此您要查看的消息必须在设置 TRACE 后不久运行。由于它会把真实负载存储在 tenant 中,请尽量在测试数据上使用,并在生产环境中遵守公司的规定。为什么 TRACE 会自动关闭一文介绍了这些限制。

在 SAP 的监控中读取 Trace

  1. 在监控中打开 Manage Integration Content,选择已部署的 iFlow,并把它的日志级别设为 Trace。
  2. 在接下来的几分钟内重新发送消息。
  3. 在 Monitor Message Processing 中打开该消息,并通过它的 Trace 链接进入消息处理运行。
  4. 在运行的图表上选择一个步骤,打开它的消息内容:header、属性和负载。

这种方法可行,但每查看一个步骤都要点击好几次,运行的图表也不是您正在编辑的那张,而且 10 分钟后又得重新设置日志级别。

在设计器中打开 TRACE

使用 Kitegra 时,在设计器中打开 iFlow,点击图表工具栏中的「Kitegra 工具」按钮并选择「消息」(或按 Alt+Shift+M)。面板按天分组列出该 iFlow 在您所选运行时上的最近消息,包括状态、开始时间和耗时。被跟踪的消息带有 TRACE 标记,新消息到达时会闪烁提示。

面板中的开关显示「Trace:关闭」。点击一次即可把 iFlow 的日志级别设为 TRACE,开关随即显示「Trace:开启」和分钟数。开关开启且您在该 iFlow 中工作时,扩展会赶在 SAP 回落之前重新设置 TRACE;在您最后一次操作 20 分钟后,它就停止续期。关闭后会恢复 iFlow 之前的日志级别。

Trace 是会更改您 tenant 的四个操作之一,与其他操作一样,只有在您点击时才会执行。

在图表上跟随消息

  1. 发送消息,或等待下一条消息。它会出现在「消息」面板的顶部。
  2. 在一条被跟踪的消息上选择「在图上」。它经过的步骤会被着色,失败的步骤会被标出,未到达的步骤则会变暗。
  3. 点击一个着色的步骤。「步骤前的内容」面板会显示该步骤之前的「Body」、「标头」和「交换属性」,以及该步骤的「日志」;如果步骤失败,还会显示「错误」。
  4. 使用「上一步」和「下一步」按运行顺序逐个查看步骤。在 Splitter 或循环中运行了多次的步骤会显示每一次运行,例如「此步骤第 2 次运行,共 3 次」。
  5. 完成后,选择「清除图上的标记」。

如果消息运行时没有开启 TRACE,面板会明确提示:只有当消息以 TRACE 运行时,SAP 才会保存其消息体和 header,且仅保留约一小时。

利用您发现的信息

  • 负载查看器可以「格式化」或「单行」显示消息体,支持「自动换行」和「搜索」,还可以「复制」或「下载」。
  • 「与下一步比较」会在「消息比较」中并排打开两个消息体,让您准确看到某个步骤改变了什么。
  • 「耗时」按各步骤所用的时间为其着色,从最快(绿色)到最慢(红色);将鼠标悬停在步骤上可查看时间。
  • 在很长的运行中,「读取的步骤」用于设置该 iFlow 读取多少个步骤,也可以选择「全部」。
  • 对于失败的消息,「摘要」选项卡会说明失败的位置,对于已知错误还会给出「通常的含义:」。

要打开一条您知道 ID 的消息(无论来自本 iFlow 还是 tenant 中的其他 iFlow),请参阅按 Message ID 或 Correlation ID 查找 SAP CPI 消息。

Kitegra 如何帮您

Message Monitor 是 Kitegra 的五个领域之一。Trace 内容属于客户数据:扩展会在页面中显示它,并允许您下载消息体,但从不存储、同步或发送给 Kitegra。

Helper、Message Monitor、iFlow Inspector 和 iFlow Docs 各自统计您使用它们的 iFlow 数:没有 Kitegra 账户时每个模块 5 个,Free 套餐 50 个,Starter 100 个,Pro 300 个;Business 不限。Toolbox 和工作区附加功能免费。比较各套餐。

在下一个 iFlow 中试试

了解 Kitegra 为 SAP Integration Suite 设计器增加了哪些功能,或在 Kitegra 的其他 Chrome 扩展旁查看它。

常见问题

为什么在 SAP CPI 中看不到消息的负载?

只有当消息以日志级别 TRACE 运行时,SAP 才会保存其消息体、header 和属性,且仅保留约一小时。请设置 TRACE,重新发送消息,并在一小时内查看 Trace。

SAP CPI 中的 TRACE 会保持开启多久?

大约 10 分钟。之后 iFlow 会回落到较低的日志级别,在重新设置 TRACE 之前,消息不会再被跟踪。

什么是「步骤前的内容」?

就是某个步骤开始时消息的样子:它的消息体、header 和 exchange property。把它与下一步的内容进行比较,就能看出该步骤改变了什么。

跟踪会让 iFlow 变慢吗?

会增加额外的工作,因为每个步骤的内容都要写入 tenant。请在排查期间使用,结束后关闭。

扩展会让 TRACE 级别永久保持开启吗?

不会。只有在开关开启且您在该 iFlow 中工作时,它才会续期 TRACE;在您最后一次操作 20 分钟后停止,并在您关闭开关时恢复之前的级别。

Kitegra 会存储我的 Trace 内容吗?

不会。Trace 内容在页面中显示,您可以自行下载;它从不被存储、同步或发送给 Kitegra。

无需离开设计器即可处理 iFlow

将 Kitegra 添加到 Chrome 或 Microsoft Edge。免费开始,无需账户。