如何在 PI 环境中处理 SLD

在这个文章 中,我想与大家分享 SLD 在整个 PI 环境中的主要机制,以及如何解决 SLD 不一致问题。

首先,只需向您展示 SAP XI 中系统环境目录 (SLD) 的一些基本知识。

请注意,所有情况都与您使用单个 SLD(包括本地 SLD)的情况有关 或中央 SLD,但与
多个 SLD(多个子 SLD 和一个主 SLD)无关。我们建议您 使用单个 SLD 运行 SLD 基础设施的成本随着 SLD 实例数量的增加
而增加。除非你 有特殊原因(法律约束、公司规则、网络约束),首选单个 SLD。

SAP XI 有几个 SLD 用例,主要如下:

• SLD 充当接收方 Determination 的应用程序业务系统名称的服务器 集成目录。因此,所有业务系统都必须在 SLD 中可用。
• SLD 充当服务器 对于应用程序业务系统名称,应用程序系统要获取自己的业务系统名称 (Java 代理 Framework 和 SAP 系统)。
• SLD 为 Integration Directory 提供传输目标 内容传输,例如从开发环境中的业务系统传输到 测试环境。
• SLD 为 Runtime 中的端到端监控提供所有系统和适配器 分配给 Integration Server 的工作台。
• SLD 提供用于传输适配器的地址 配置数据从 Integration Directory 到适配器缓存。
• SLD 包含以下函数 软件组件版本管理。

在介绍 XI 的 SLD 之前,我将向您展示普通 Netweaver、ABAP 和 JAVA 的 SLD 数据供应商 系统,因为 PI 的供应商配置相同。
任何连接到 SAP 的 ABAP 和 JAVA 系统 被视为 SLD 客户端,则它们应定期将其数据传输到 SLD 以使 SLD 保持最新状态。

  • 系统启动时 自动注册
  • 通过 SLD 桥定期报告最新的系统信息
  • 适用于
    • SAP Web 应用程序服务器 (ABAP)
    • SAP Web 应用程序服务器 (Java)
       

  • 基于 ABAP 的系统中的数据供应商定期交付收集的系统 信息。
  • SLD 网桥将此信息作为 CIM 兼容数据传输到 SLD 服务器。
  • 数据供应商可用于 SAP Web 应用程序 服务器版本 ≥ 6.30

基于 ABAP 的系统的数据供应商 – TA RZ70

如果您计划后台作业,则将自动创建目标 SLD_UC 和 SLD_NUC。请注意 我们不再需要 SAPSLDAPI 和 LCRSAPRFC。

有关 ABAP 系统和 Java SLD 之间的 SLD 连接的更多详细信息, 另请查看以下博客:

How to push ABAP system data to a Java only SLD - SAP Community

对于 ABAP 系统,我们可以运行 TA SLDCHECK 来测试 SLD 连接。如果不成功,您应该首先修复它,您 可以查看以下 SLDCHECK 的故障排除说明:

#1143810 - SLDCHECK 故障排除 - 版本 71X
#768452 - SLDCHECK 故障排除 - 版本 640、70X

对于 Java 系统,我们使用 HTTP 在 NWA 中配置 SLD 数据供应商 目的地。

SLD 数据桥充当 HTTP servlet,用于接收 Java 数据供应商报告的系统数据并转发 它们发送到 SLD 服务器。
主要会收集以下 Java 系统信息: 

  • 系统名称和 URL
  • 数据库
  • 实例:主机名、实例号、节点
  • 部署的对象:应用程序、服务、库、接口
  • 已安装的软件组件

基于 Java 的系统的数据供应商应由 NWA 中的以下 HTTP 目标配置:

好,让我们来看看 XI 中 SLD 处理的要点。
对于 XI 来说,一致的 SLD 内容很重要。如果 SLD 不一致,应该有很多问题,例如缓存问题、消息处理错误等。

那么 XI 系统的一致 SLD 应该是什么样子的呢?我将分别向您展示 SAP XI/PI、PO(AEX)、PI(拆分堆栈)。如您所知,目前
支持三种类型的 XI 安装。

  1. 根据版本,经典的 ABAP+JAVA 堆栈称为 XI 或 PI。
  2. 731 的 Java Only 堆栈,一个是 AEX,一个是 AEX+BPM,称为 PO。
  3. 从 PI 7.5 开始,PI(Split Stack),如有必要,它可以集成另一个不同的 Netweaver ABAP 系统。

如果 SLD 包含不一致的条目,这可能是由手动更改或临时通信问题引起的 在自注册期间,但在更新支持包期间也可能发生不一致
。这 在运行时可以有多种效果,这不会立即导致 SLD 中的不一致。

例如:

  • XI 目录中的错误消息:找不到相关的适配器引擎
  • 缓存更新错误:找不到与集成目录的关联
  • Runtime Workbench 的组件监控域中不包含集成服务器
  • Central Adapter Engine 在 Runtime Workbench 的组件监控中不可见
  • 配置端到端监控时,Runtime Workbench 中出现错误消息:Integration server does not 存在或无法在 SLD 中找到。

首先,检查是否分配了同一个 XI 域的所有 XI 组件,以及是否有多个 XI 域 对于服务器。在某些情况下,
会注册两个名称相似的域;一个具有 完全限定的主机名和一个具有短主机名的主机名。这表示不一致。
通常,集成 server 和另一个 XI 组件(目录、存储库或适配器引擎)也不会分配给同一个域。 那里缺少一些条目。

要检查 SLD 内容,我们转到 SLD 主页:http://host:port/sld-> Technical Systems->选择“Technical System Type” 指定为 “流程集成”。
对于一致的 SLD,应该有 6 个条目,它们是 Domain、Adapter Engine、Integration Server、RWB、Integration Repository 和 Integration Directory。
它应该像 以下屏幕:

对于三种类型的 XI,上面的屏幕与总共 6 个相同 条目。
如果已安装非中央适配器引擎,则 应为多个具有不同系统 ID 和主机的 Adapter Engine,如下所示:

对于这三种类型的 PI,SLD 的主要区别在于 Integration Server 部分。如果您单击 相应的应用系统。此外,对于每个 Integration Server,
都应该有一个 Business System 替换为 INTEGRATION_SERVER_<SID> 名称,并定义了管道 URL。

对于经典的 XI 系统,Integration Server 是 ABAP 堆栈的含义,因此相应的 业务系统INTEGRATION_SERVER_<XI_SID>。
而管道 url 是 http://<XI_host>:<XI_port>/sap/习/engine?type=entry,即 消息将从 Adapter Engine 处理完后发送到此 URL。
它始终关联 使用 Central (double stack) 对话框实例。

对于 AEX/PO,它是纯 java 堆栈,所有消息处理都在 java 堆栈中进行。相应的 集成服务器名称为 INTEGRATION_ENGINE_JAVA_<PO_SID>
,管道 URL 为 http://<PO_host>:<PO_port>/XISOAPAdapter/MessageServlet。请注意,'Java Integration Server' 与 SCS 实例相关联,因为只有此实例
在分布式 AS 中是唯一的 Java 安装。

对于 PI 7.5(拆分堆栈),它也使用 ABAP Integration Server 作为经典服务器,但它来自集成的 另一个 ABAP 系统。因此,PI 系统 ID 和集成的 ABAP
系统 ID 是不同的。例如,PI 是 J75,而 ABAP 系统为 A75,因此 ABAP 集成服务器名称为 INTEGRATION_SERVER_A75,并且 管道 URL 是
http://<A75_host>:<A75_port>/SAP/习/engine?type=entry。

 

XI 安装类型

集成服务器 BS

应用系统

管道 URL

XI/PI(双堆栈)

INTEGRATION_SERVER_<PI_SID>

ABAP

http://<XI_host>:<XI_port>/sap/习/engine?type=entry

AEX/PO(仅限 Java)

INTEGRATION_ENGINE_JAVA_<PO_SID>

爪哇岛

http://<PO_host>:<PO_port>/XISOAPAdapter/MessageServlet

PI 7.5(拆分堆栈)

INTEGRATION_SERVER_<ABAP_system_SID>

ABAP

http://<ABAP_system_host>:<ABAP_system_port>/sap/习/engine?type=entry

对于新安装的 PI 系统,应正确注册所有 XI 组件。如果出现任何不一致, 原因应该是多种多样的,并且要根据具体情况进行,因此我们需要了解 XI 组件如何注册的
机制。西 组件是自注册的,它与组件不同。XI 工具、集成引擎和 XI 适配器 Engine 以不同的方式在 SLD 中注册他们的
URL:

XI 工具:工具(RWB、Integration Builder -Repository 和 -Directory)使用的主机名和端口存储在 Exchange 配置文件。在 J2EE 系统重新启动期间,它们使用定义的值在 SLD 中自行注册
那里。相应的 Exchange Profile 参数(对于 Java Only 系统,它们位于服务下 “XPI 服务:AII Config 服务”)如下:

Integration Server(“连接”部分)

  • com.sap.aii.connect.integrationserver.sld.name
  • com.sap.aii.connect.integrationserver.r3.r3名称
  • com.sap.aii.connect.integrationserver.r3.mshost
  • com.sap.aii.connect.integrationserver.r3.group

 目录 (“连接”部分)

  • com.sap.aii.connect.directory.mshost
  • com.sap.aii.connect.directory.mshttpport
  • com.sap.aii.connect.directory.mshttpsport

存储库(“连接”部分)

  • com.sap.aii.connect.repository.mshost
  • com.sap.aii.connect.repository.mshttpport
  • com.sap.aii.connect.repository.mshttpsport

Runtime Workbench(“连接”部分)

  • com.sap.aii.connect.rwb.r3.mshost
  • com.sap.aii.connect.rwb.r3.r3名称
  • com.sap.aii.connect.rwb.r3.group

请注意,如果您的 XI 系统是高可用性系统,则值应该不同,您应该 请详细遵循以下说明:

#951910 - NW2004s 高可用性 使用类型 PI
#1052984 - 工艺 集成 >=7.1 - 高可用性

如果上述所有参数都已正确配置,但您仍然无法从 SLD 中找到它们,那么您应该 检查对应的服务用户(PIAFUSER、PIISUSER、
PIDIRUSER、PIREPUSER、PIRWBUSER)是否具有 使用适当的角色在 SLD 中使用正确的密码。例如,对于 Integration Directory,服务用户 PIDIRUSER(PIDIR<SID>)
应该能够登录到 SLD,并且角色 SAP_SLD_CONFIGURATOR 应该是 分配。对于中央 SLD,服务用户的密码应与 PI 一致。

XI 适配器引擎:对于 XI 适配器引擎,这些 URL 会自动输入到 SLD 中,作为 Adapter Framework 自注册过程。
Host 和 port 从 J2EE 服务器获取。在大多数情况下, 这些 URL 中的主机名不是完全限定的,而在跨域场景中,完全限定的主机名是 必填。
对于 Adapter Engine,方法有所不同:更改属性

  • “SLD.selfregistration.httpPort”
  • “SLD.selfregistration.httpsPort”
  • “SLD.selfregistration.hostName”

J2EE 服务“SAP XI AF CPA 缓存”(6.40、7.0)或“XPI 服务:CPA 缓存”(7.1 及更高版本)。进入完整的 限定的主机名,从所有相关网络域都可以通过该主机名访问 Adapter Engine。在 J2EE 引擎的可视管理员(6.40、7.0)或 NetWeaver 管理员(7.1 和更高)。然后重新启动 应用程序 “com.sap.aii.af.cpa.app” 和 “com.SAP aii.af.app”,或 重新启动整个 J2EE 引擎。这将触发新的 Adapter Engine 自注册。
 

 

当您将消息从中央 Integration Server 发送到中央适配器引擎时,运行时 尝试从 sxi_cache
确定中央适配器引擎的 URL(转到 Adapter Engine 缓存)。进入 Integration Server (IS) 到事务 “SXI_CACHE -> Goto -> Adapter-Engine-Cache” 并删除旧适配器 引擎缓存条目。之后,
一旦将新消息发送到 相应的适配器引擎。如果 SLD 不可用,则从 Exchange 获取中央适配器引擎 URL Integration Server 的配置文件
数据:

  • 适配器引擎 URL 由以下 Exchange 配置文件参数组成:
    <HOST> := com.sap.aii.connect.integrationserver.name
    <HTTP 端口> := “com.sap.aii.connect.integrationserver.httpport”
    <HTTPS 端口>:= “com.sap.aii.connect.integrationserver.httpsport”
  • HTTP 网址 := http://<HOST> <HTTP 端口>/MessagingSystem/receive/AFW/XI
    HTTPS URL := https://<HOST>:<HTTPS 端口>/MessagingSystem/receive/AFW/XI

您可以检查 SLD 中的 Adapter Engine url 是否正确,如下所示:

通过“内容维护 - > XI 适配器框架”(6.40、7.0)或“CIM 实例 -> XI 在 SLD 中导航 Adapter Framework“(7.1 及更高版本)添加到您的 Adapter Engine。作为 “关联实例” 的一部分,您可以找到 例如,在“XI Adapter Service XIRA -> 关联实例 -> XIRA 的端口 af.<SID>.<hostname>“ 具有完全限定主机名的新 URL。

对于集成服务器,此外,在执行 SLD 解析之前,将从 Exchange 配置文件 (EP) 中读取 IS 名称 参数:com.sap.aii.connection.integrationserver.sld.name
如果该参数为 available 并包含有效的 IS 名称,则直接使用它,而无需从 SLD 进行进一步解析。这是一致的 使用 JAVA 代码读取 IS 名称。
此属性减少了 XI/PI 和 SLD 之间的总体通信量, 避免了 CIM 客户端的多线程使用,并且可以显著提高整体系统性能。

SLD 中的 Integration Server 名称根据以下规则形成:

com.sap.aii.connection.integrationserver.sld.name = is.<中央应用程序的系统编号 server>.<中央应用服务器的主机名>

请注意,对于仅限 AEX java 的系统,规则已更改,应在“XPI Service: AII Config Service“:

  • com.sap.aii.connect.integrationserver.sld.name = is.<SCS_Instance_no>.<SCS_Instance_host_normalized>
  • com.sap.aii.connect.integrationserver.name = <Dialog_Instance_Host_Fully_Qualified>
  • com.sap.aii.connect.directory.mshost = <SCS_Instance_Host_Fully_Qualified>
  • com.sap.aii.connect.directory.mshttpport = <SCS_HTTP_Port_prefix><SCS_Instance_no>
  • com.sap.aii.connect.repository.mshost = <SCS_Instance_Host_Fully_Qualified>
  • com.sap.aii.connect.repository.mshttpport = <SCS_HTTP_Port_prefix><SCS_Instance_no>

<SCS_Instance_host_normalized>:这是从“MSHOST”(消息服务器 Host Name) 的 Package。Java 消息服务器始终在 SCS 实例上运行。
<SCS_Instance_no>:这是从“MSPORT”读取的实例编号。MSPORT 是一个系统 变量。默认值为 39<SCS_Instance_no>.<SCS_Instance_Host_Fully_Qualified>:这是完全合格的 SCS 主机名。它在 *.mshost 中使用 参数。
<SCS_HTTP_Port_prefix><SCS_Instance_no>:该实例号为 SCS 实例号。 默认值为 '81<SCS_Instance_no>'。

以下是有关 SLD 配置和不一致问题的有用说明,供您参考:

#804124 - 与 XI 的 HTTP 通信 适配器引擎失败

#1093249 - 减少 SLD XI/PI 高可用性设置中的通信

#1282862 - 的 SLD 依赖项 在 AF 中获取 XI 连接参数

#1651999 - 的主机名不正确 SLD 组件 - XI/PI/PO

#954820 - SLD 的兼容性 系统环境

(#764176 - 手动修正 XI SLD 中的内容

#1117249 - 未完成 在 SLD 中注册 PI 组件)

对于注释 #764176 和 #1117249,您应该小心使用它们,因为如果您这样做,它会使问题变得更糟 从 SLD 中删除正确的 Integration Server,
因此请始终联系 SAP PI 顾问 在实施这些说明之前。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值