已经处理 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)中。