云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

天翼云_mysql负载均衡_代金券

小七 141 0

各位专家,

我最近遇到了一种情况,我的一个定制开发的OData服务的糟糕性能导致了很多问题,大数据存储技术有哪些,我不得不跳出框框,想出执行详细跟踪的方法。在这篇博文中,我将展示一些在网关和SAP后端记录和跟踪OData调用的工具。此外,我将展示如何在SAP后端的ABAP运行时分析工具(SAT)中捕获OData调用,以便对在后端执行的所有步骤进行非常详细的分析。

大多数ABAP开发人员都知道运行时分析工具,但我将展示如何安排捕获,因此,来自浏览器的OData调用可以触发创建度量以供进一步分析。

在SAT中,可以查看以下内容:哪些DB表正在更新,哪些编码块正在调用,调用次数,以及每次调用的运行时间(以微秒计),更多信息。

SAP Gateway Tracing

在使用SAP Gateway OData服务时,大多数人都会遇到两种最常用的事务,用于在SAP Gateway中进行日志记录和跟踪。

/IWFND/ERROR\ U LOG:显示对网关的错误OData调用/IWFND/跟踪:显示性能和负载跟踪

在SAP网关和SAP后端系统位于两个不同系统(使用网关集线器)的环境中,这些实用程序在SAP网关集线器(而不是后端)上使用。

错误日志是连续日志,将显示框架错误。

跟踪是特定于用户的,必须先启用才能显示。

默认情况下将选择登录用户,但可以使用标记的按钮添加其他用户。

跟踪在两小时内处于活动状态,之后,它们将被自动停用。

有效负载跟踪是显示系统上执行的原始OData请求(和响应)的极好工具。

如果使用$批处理调用,一个http请求可能包含多个OData请求。这使得在错误情况下更难确定问题所在。

在上述调用中,3个单独的GET调用在一个请求中进行。

在这个视图中,我们看到从(请求)和(响应)客户端传递的原始数据。

相应的性能跟踪显示3个GetEntitySet调用,但没有来自客户端的详细信息后端。只有每次调用的总处理时间

SAP后端

在后端系统中,有两个类似的实用程序用于记录和跟踪。

/IWBEP/ERROR\U LOG:显示对网关的错误OData调用/IWBEP/跟踪:显示性能和负载跟踪

这些将显示来自SAP网关框架的类似信息,但在后端系统中。

注意:我发现,在较旧的SAP版本中,这些可能无法从startscreen正确启动,但由于某些奇怪的原因,它们可以从SE93启动,或者将它们添加为收藏夹。

了解网关框架的工作方式,了解我们可以使用这些工具做什么,这一点很重要。当SAP网关从客户机接收到OData请求时,啥是大数据,它将验证JSON请求数据并将其反序列化为ABAP数据。然后它确定调用应该路由到哪个后端系统,并通过RFC(功能模块)调用后端系统,以映射格式传递数据。在后端系统上,调用数据提供程序类来执行请求。

后端跟踪的启用方式与在SAP网关上相同。

在后端负载跟踪中,我们将看到$batch multi requests中包含的每个OData调用的单独度量。这将为我们提供比SAP网关更详细的信息。此列表中只有一个度量值的$batch类型的请求只包含一个OData请求。

当检查有效负载时,我们现在将看到XML格式的请求有效负载。这是json请求反序列化后,从SAP网关传递到RFC功能模块的数据格式。

在性能跟踪中,对于包含多个请求的$batch请求的每个OData子请求,我们还将看到不同的度量。

通过双击一个条目,云服务器服务商,大数据解决,我们可以检查执行请求调用的数据提供程序类的路径。

但是我们仍然无法获得关于数据提供程序类中发生的事情的详细分析数据。

ABAP运行时分析(SAT)

要获得非常详细的运行时分析数据,我们可以使用ABAP运行时分析工具分析数据提供者类中正在执行的操作。

这是在后端系统的事务SAT中完成的。

在SAT中,您可以分析事务、程序或功能模块中正在执行的代码。在Gateway上下文中,我们实际上并没有直接的这些。但由于SAP网关调用总是通过RFC(功能模块)调用传递到后端系统,即使网关位于后端系统上,我们可以使用它来启用运行时分析。

为此,我们使用调度实用程序(用红色标记)。

单击创建图标。

输入功能模块"/IWBEP/FM\u MGW\u HANDLE\u REQUEST"和上面显示的其他值,或根据您的需要进行更改。(参见下面如何找到该功能模块)。

按Enter。

从概述中,我们现在看到一个旧的度量已经执行,而我们的新度量处于"进行中"状态,这意味着它已准备好捕获。

如何找到该功能模块:

之前我们看到了后端性能跟踪的调用堆栈。如前所述,后端的调用堆栈总是从RFC功能模块开始,因此我们可以在这里的方法列中找到它。

开始捕获

转到浏览器或其他客户端并进行OData调用。

状态现在更改为"已执行"

现在转到SAT的评估选项卡,找到您的度量值。

双击它。

现在您可以深入了解度量值,查看每个编码块使用了多少次,以及检查调用了哪些编码块,等等。

这个工具非常先进,提供有关后端系统中运行时详细信息的非常详细的信息。

调试Odata调用

为完整起见,我还将演示如何调试Odata调用。

要在ABAP中执行外部调试,调试用户(执行调试)和被调试用户(正在调试的用户)都必须具有调试授权,如图所示上图。

不需要对上述所有活动都进行授权,52返现网,但我不确定哪些活动是最基本的需要。

转到事务SE80,选择"实用程序"->"设置"。

设置要调试的用户,然后按Enter。

找到要调试的数据提供程序类方法,并将光标定位在行上断点应该放在哪里。

点击外部断点图标进行设置。

当用户执行调用时,一旦用户点击断点,调试器就会打开。