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

云数据库_开源对象存储_促销

小七 141 0

这个响吗?

您是否听过业务"我们需要与应用程序"xyz"相关的同步接口或基于其他参数(如业务系统….在特定时间段等)发生的应用程序错误的详细信息?,

上周,我被问到类似的问题,但方式略有不同

生产支持团队想知道昨天发生的76000条应用程序错误消息(主要是同步错误)中有哪些是错误代码或描述,有多少是重复到哪个接口,SAP CRM for ex.

中的业务系统和应用程序名称他们想知道错误描述、编号、服务和操作名称,所以他们可以优先选择哪一个,同时跟踪最近一个月出现的最常见/重复的错误代码。

这就是这个博客的开始……………

一般观点:

在生产环境中记录同步日志的成本非常高,特别是当响应时间真的很重要时,所以我们通常更喜欢关闭PI&ABAP中同步消息的日志记录。默认情况下,PI&ABAP记录同步的错误消息。但对于错误消息,处理方式略有不同,PI将应用程序错误视为成功,因此不记录,而ABAP使用错误结构记录应用程序错误。代理框架专门查看messageclass的值,如果值为ApplicationError,则将消息视为应用程序错误。

应用程序错误

由于消息记录在ABAP堆栈中,所以别无选择,只能使用sxmbèu moni查看消息内容并采取措施,但当消息数不到几百或几千时,就会出现问题返回到ABAP堆栈的错误消息?或者编写定制解决方案,从标准表中提取我们需要的内容。

在ABAP上定制开发以获取错误信息并不是什么新鲜事,SDN上有很多很好的博客,介绍如何构建SDN以及查看哪些表,步骤主要是(不同的要求可能有不同的步骤,如果发现4个步骤太多请忽略)

步骤1:从表SXMSPAST获取所有消息ID,其中MSGSTATE的字段值为024-应用程序错误

步骤2:从SXMSPEMAS获取接口名

步骤3:从SXMSPEROR获取错误详细信息

步骤4:最后如果需要检查来自集群表SXMCLUR和sxmxclup的错误消息结构,则打开有效负载。

超过1步的原因是我们没有从单个表中获得所需的所有信息,从这个意义上说,PI JAVA堆栈更好,大部分信息都出现在BC\u MSG

问题描述:

场景:假设您有4000条故障消息,运行40个同步接口,由4个不同的应用程序/程序调用。

作为第一步,

步骤1:我只想知道不同的故障错误描述或代码,以及有相同错误的接口的数量,然后然后我决定查看有效负载的信息。

第2步:按调用过的应用程序或程序名等对它们进行分组。

一天结束时,我只想根据ApplicationID+故障代码+错误描述获得故障消息概述,类似于消息概述,但最高层应该是错误代码或描述或任何其他客户需要的参数。

当前用例:

客户环境通过3个PI系统从SAP CRM到各种遗留系统有2000多万个同步呼叫,每天我们可能会收到几千条错误消息,这可能是各种原因、不正确的数据,遗留端出现错误,作为应用程序错误返回…等等

生产支持团队有简单的要求,

在所有应用程序错误中,根据错误代码分组,错误描述(这些值出现在每个错误结构中)以及有多少错误来自哪个applicationID,以便根据错误类型给予优先级。

在SAP ABAP stack中与sxmb\u moni相关的所有表中,表SXMSPERROR是生命救星,这个表是简化事情的关键。

让我们从SXMSPERROR表运行下面的语句。

"选择distinct ERRCAT作为ERRCAT,ERRCODE作为ERRCODE,count(1)作为记录计数从sxmsperro2 group by ERRCAT,ERRCODE;

输出有74k个错误消息,我们仍然不知道每个

SAP存储错误类别和错误代码中的错误分组,对于同步错误,默认值为

ERRCAT--SOAP

ERRCODE--APPLICATION\u error(应用程序错误)

还有一个字段,云实,我们需要的是"ERRTXT"。

所需的输出来自SXMSPEROR表格

深入技术细节:

SXMSPEROR是生命的救世主,只有当我们以正确的方式使用它。在正确使用之前,让我们先看看它是如何默认工作的。

下面是正常故障信息的图片,可能看起来像下面的一个,字段值被映射到sxmxperror表字段,以了解这是如何链接的。

问题是什么影响这三个字段的值,美国云服务器,文本"应用程序错误已纠正"是如何出现在附加文本中的?为什么不写其他的文字呢?

让我们退一步到PI中,并重新收集故障结构。

根据SOAP foramt,典型的故障结构如下所示(来自w3schools)

SAP PI不允许更改字段、、字段,即使它们在SOAP主体中,只有我们控制的字段在

中,原因是faultsCode和FaultString当由webservice主机生成时,它应该被不加更改地发送给客户端,没有逻辑上的理由来更改它。