淘先锋技术网

首页 1 2 3 4 5 6 7

SAP PI PO 接口常见问题处理:在监控器中找不到一个或多个 XI 消息的日志记录

已经处理 XI 消息,但在 XI 监控器中找不到它,或者在映射服务之后没有为该 XI 消息写入日志版本。如果运行时持久保存 XI 消息,则 XI 监控器(事务 SXI_MONITOR 或 SXMB_MONI)会显示它们。

原因和条件

正在使用 SAP NetWeaver Process Integration 作为中央集成服务器或应用程序系统中的本地集成引擎,且遇到上述问题。在应用程序中,正在使用 XI 消息协议处理同步接口,且想要检查 XI 监控器中的调用。如果客户没有为同步接口显式激活日志记录,那么如果处理成功,同步 XI 消息不会持久保存,这意味着它们无法显示在 XI 监控器中。想要对日志记录/持久化 XI 消息的配置进行配置,并且需要为此提供附加信息。

解决方案

XI 监控器显示运行时已永久保存的 XML 消息。
以下约定用于 XML 消息:
•XI 消息:使用 XI 协议处理的 XML 消息
•WS 消息:使用 Web 服务 (WS) 协议处理的 XML 消息

下面描述同步和异步 XI 消息的持久性。

异步 XI 消息

服务质量为 "EO" 或 "EOIO" 的异步 XI 消息始终由 XI 运行时永久保存;无法取消激活此功能。
•入站消息版本已保存。此版本可由 XI 运行时启动。
•保存消息拆分或错误/重新启动版本后的消息版本。这些版本可以由 XI 运行时启动。
•最终消息版本(状态“已成功处理”或“已手动结束处理”)。这些版本无法由 XI 运行时启动。
◦=> 这些 XI 消息版本在许多描述中称为“生产消息版本”
◦=> 消息处理只能从生产消息版本开始,最终消息版本除外。

XI 消息由各个管道服务中的运行时处理。在每个管道服务之后,可以将结果永久保存为日志版本。标准情况下,会取消激活这些日志版本的持久化,因为这需要占用数据库中的大量内存。可以使用以下参数为异步 XI 消息激活全局日志记录(所有管道服务的日志记录):

事务 SXMB_ADMIN ->“配置”->“配置集成引擎”->“配置”
类别               "RUNTIME"
参数               "LOGGING"
子参数        " "
值                         "1"
如果未设置该参数,则 XI 运行时使用标准 "0"。
如果只想永久保存单个管道服务(例如,对于映射服务)的结果,可以针对每个管道服务进行定义。如果为异步 XI 消息取消激活全局日志记录,可以针对单个管道服务将其激活,如下所示:

事务 SXMB_ADMIN ->“配置”->“配置集成引擎”->“配置”
类别               "RUNTIME"
参数                "LOGGING"
子参数        <PIPELINE-SERVICE> 
值                        "1"◦=> 可以使用输入帮助来确定子参数 <PIPELINE-SERVICE> 的可能值
◦=> 可以为不同管道服务设置多个条目。
◦=> 如果为异步消息激活全局日志记录,则不能使用此参数针对单个管道服务将其取消激活。
◦=> 无法在接口特定基础上配置此参数。

同步 XI 消息

如果处理成功,标准系统中的 XI 运行时不会持久保存服务质量为 "BE" 的同步 XI 消息。同步 XI 消息处理会监督从请求和响应部分开始的每个跳跃。如果发生错误,会永久保存请求部分的最终消息版本,可能还有响应部分,以记录错误。
可以使用以下参数取消激活同步 XI 消息的日志记录:

事务 SXMB_ADMIN ->“配置”->“配置集成引擎”->“配置”
类别               "RUNTIME"
参数               "SYNC_ERROR_LOG"
子参数        " "
值                        "NO"
如果未设置参数,则 XI 运行时使用标准 "FULL"
如果同步 XI 消息的有效负载包含不得存储的安全相关数据,则可以使用以下设置进行配置:

事务 SXMB_ADMIN ->“配置”->“配置集成引擎”->“配置”
类别               "RUNTIME"
参数             "SYNC_ERROR_LOG"
子参数        " "
值                        "HEADERS"
如果未设置参数,则 XI 运行时使用标准 "FULL"。◦=> 无法在接口特定基础上配置此参数。

可以使用以下参数为同步 XI 消息(无论消息状态如何)激活全局日志记录(所有管道服务的日志记录):

事务 SXMB_ADMIN ->“配置”>“配置集成引擎”->“配置”
类别               "RUNTIME"
参数               "LOGGING_SYNC"
子参数        " "
值                        "1"
如果未设置该参数,则 XI 运行时使用标准 "0"。◦=> 同步 XI 消息没有任何生产消息版本;这意味着它们无法再启动。
◦=> 无法在接口特定基础上配置此参数。
◦=> 处理所有管道服务之后,XI 消息会收到最终成功状态或错误状态。
◦=> 较长时间未完全处理之后,显示在监控器中的 XI 消息具有日志状态。

出现这种情况的可能原因包括:
1. 发送方中断连接。这会立即结束正在运行的工作进程,应用程序没有机会写入错误状态。2. 处理导致运行时错误。这会立即结束正在运行的工作进程,应用程序没有机会写入错误状态。3. 工作进程由系统管理员手动终止。4. 应用服务器意外关闭。5. ...◦=> 如果此消息的保留期已过期,则会自动重组带有日志状态的 XI 消息。
◦=> 无法再启动具有错误状态和日志状态的同步 XI 消息。
◦=> 同步 XI 消息的全局日志记录需要大量的数据库空间;建议取消激活此功能。

如果只想在日志版本中记录单个管道服务(例如,对于映射服务)的结果,可以针对每个管道服务进行定义。如果为同步消息取消激活全局日志记录,可以针对单个管道服务将其激活,如下所示:

事务 SXMB_ADMIN ->“配置”->“配置集成引擎”->“配置”
类别               "RUNTIME"
参数             "LOGGING_SYNC"
子参数       <PIPELINE-SERVICE>
值                        "1"
如果未设置该参数,则 XI 运行时使用标准 "0"。◦=> 可以使用输入帮助来确定子参数 <PIPELINE-SERVICE> 的可能值。
◦=> 可以为不同管道服务设置多个条目。
◦=> 如果为同步消息激活全局日志记录,则不能使用此参数针对单个管道服务将其取消激活。
◦=> 无法在接口特定基础上配置此参数。

跨客户端监控

在事务 SXI_MONITOR 或 SXMB_MONI 中,希望使用当前用户在 XI 监控器中显示跨客户端 XI 消息。
用户需要以下权限:
权限对象     "S_XMB_ADM"权限字段         "SXMBADM"要检查的值        "X"
对由 Web 服务 (WS) 运行时处理的 WS 消息的注释

WS 消息由 WS 运行时记录或永久保存;这不能使用 ABAP XI 配置进行配置。

在版本 7.00 到版本 7.40 SP1 中,XI 监控器(事务 SXMB_MONI 和 SXI_MONITOR)显示 XI 消息和 WS 消息。事务 SRT_MONI 仅显示 WS 消息。

在 7.40 SP2 和更高版本中,WS 消息仅显示在事务 SRT_MONI 中:
•XI 消息 => 事务 SXMB_MONI 或 SXI_MONITOR
•WS 消息 => 事务 SRT_MONI

对使用 ABAP IDoc 适配器处理的 IDoc 消息的注释:

中央集成服务器上的 ABAP IDoc 适配器为收件箱中的 IDoc 生成异步 XI 消息,并从发件箱中的异步 XI 消息生成 IDoc。

对于异步 XI 消息,IDoc 控制记录和 XI 消息之间的关系始终保持不变。无法取消激活此功能,因为进一步处理仍需要技术信息。

IDoc 控制记录和 XI 消息之间的关系显示在 IDoc 监控器(事务 IDX5)中。