在开始介绍事物码 SAT 之前,让咱们简略回顾一下 ABAP Platform 的概念。
ABAP 平台是基于 SAP HANA 数据库和数据管理平台的基于 ABAP 的 SAP 解决方案的根底。ABAP 平台充分利用了 SAP HANA 提供的底层翻新。这与 SAP NetWeaver
不同,在 SAP NetWeaver 中,Application Server ABAP 为 SAP 反对的 所有数据库系统
提供了一个公共层。相比之下,ABAP 平台是齐全为 SAP HANA 优化的。
ABAP 平台是基于 ABAP 平台的根底插件。
在 SAP HANA 数据库中,池 (pool) 和集群表 (cluster tables) 的概念被认为是过期的。因而,不再反对池表和集群表。任何现有的池表、集群表、表池 (table pools) 和表集群 (table clusters) 都已删除。
在 ABAP Platform 里,当初能够配置 ABAP 守护过程 (Daemon) 的主动启动。配置的守护过程应该由零碎或应用程序服务器实例主动启动,并显示在事务 SMDAEMON
中。为了容许配置监控,ABAP Daemons Start-Up configuration 视图曾经增加到事务中。
Release 7.53 与内核 773 一起公布,它不向下兼容任何较低的 ABAP 版本。因而,以技术上不兼容的形式扭转了几个对于 ICM 的参数。
ABAP 服务器和 SAP Web Dispatcher 在服务器角色中反对 HTTP/2 协定曾经有一段时间了,然而,默认状况下它没有启用。HTTP/2 通过重用单个 TCP 连贯和额定的压缩提供了性能改良,特地是在慢速网络中。从 7.53 版本开始,默认启用 HTTP/ 2 协定。
除了在服务器角色中反对 HTTP/ 2 外,ABAP HTTP 客户端当初也反对 HTTP/ 2 协定。如果所有连贯参数 (指标主机、端口、代理、客户端证书) 都雷同,建设的连贯将跨 ABAP HTTP 客户端类 CL_HTTP_CLIENT 的多个实例和多个用户会话重用。如果通信搭档也反对 HTTP/ 2 协定,这种重用能够显著缩小已应用的出站连贯的数量。
默认状况下,客户端角色中 HTTP/2 的应用是敞开的,以防止可能的不兼容。它能够通过设置 profile 参数 icm/HTTP/client/support_http2 = true
来关上。
最初,就是本文要介绍的事物码 SAT. 这个事物码是 ABAP 零碎里的一个工具,用于对 SAP 利用进行性能监控和度量。
上面是一张 SAP ABAP 零碎事物码 SAT 的截图:
大家最常应用 SAT 的形式,也就是在上图 In Dialog 区域里,输出事务码,ABAP 报表或者 Function Module 的名称,而后点击 Execute 按钮. 如此一来,指定的这些 ABAP 程序会在 SAT Trace 模式下运行,主动生成蕴含了执行性能和调用栈等信息,在程序完结退出 Trace 模式下之后即可查看。
SAT 生成的 Trace 后果,以树形构造显示 ABAP 程序执行的每一调用栈和性能数据,无论是进行性能剖析,还是学习一段生疏代码的执行逻辑,都十分有用。
那么这里有个问题,如果想跟踪或者想钻研的利用,是通过浏览器关上的,例如 SAP S/4HANA Fiori 利用,SAP ABAP WebDynpro,WebClient UI 这种,假使想钻研浏览器里某个利用点了某个按钮之后,背地产生了什么,如何用 SAT 来跟踪?这也是笔者的共事过来常常问我的一个问题。
只管咱们能够用 SAT 界面右部的 In Parellel Session 来实现,但 Jerry 感觉其步骤稍嫌繁琐,反正 Jerry 从来不用,具体步骤在这篇 SAP 社区博客里有具体介绍。
本文介绍另一种方法,这也是 Jerry 工作中用的方法。
假如有一个 SAP Fiori 利用,点了某个按钮后,会触发一个 OData 服务调用,从 ABAP Netweaver 服务器上取数据。我曾经在 Chrome 开发者工具里把这个 OData 服务的 url 抄了下来,保护在 Postman 里,随时能够反复调用。
这种办法的思路概括如下:
(1) 在要跟踪的后盾代码的起始和完结的地位各打一个断点,假如起始地位断点为 1,完结地位为 2.
(2) 在浏览器或者其余工具里启动利用,触发断点 1,此时在调试器里开启 SAT 的 Trace 模
式。
(3) 调试器里间接按 F8,程序会执行到断点 2 而后停下来。此时在调试器里敞开 SAT 的 Trace 模式。
(4) 完结程序的执行,回到 SAT,查看 Trace 后果。
这种办法的关键在于找准断点 1 和断点 2 的地位。如果是跟踪本人相熟的利用,找准地位不难;如果跟踪的利用本人不相熟,那么就在框架开始执行和完结的地位各设置一个断点就好了。
还是以下面的 OData 服务为例,因为抄下来的 url 片段蕴含了 /sap/opu/odata/sap, 这起始曾经通知了咱们在哪里设置断点。
关上事务码 SICF,输出 OData 而后查问,在后果列表里双击 OData 节点:
但凡浏览器里从 ABAP Netweaver 后盾发动的 HTTP 调用,只有 url 蕴含 /sap/opu/odata, 必定会被 SICF 事务码里 odata 这个节点调配的 ABAP Handler 类解决。
双击进入这个类的 HANDLE_REQUEST 办法,在其办法开始的地位设置断点 1,在这个办法的最初一行设置断点 2.
当初关上浏览器或者执行 Postman 以触发断点 1,在调试器里点击 New Tool 按钮,
在弹出窗口里,点击 Special Tools 里的 Trace 按钮,
双击这个图标,开启 SAT 的跟踪模式:
Status 栏看到绿灯,阐明以后曾经在 Trace 模式了:
F8 执行到第二个断点,双击下图蓝色区域的图标以敞开 SAT 跟踪模式。敞开后,Status 栏的绿灯变红,同时 TraceFile 里呈现一个卷轴图标,提醒咱们 SAT 跟踪文件曾经生成了。
关上 SAT 事务码,看到这个胜利生成的后果文件。
树形构造的调用栈,每个栈的执行性能清晰地列举进去。
总结
本文首先介绍了 ABAP Platform 的基本概念,接着具体叙述了事物码 SAT 在对通过浏览器启动的 SAP 利用进行性能监控和测量的具体步骤。