用于多个目的地的 JCO IDOC 服务器

JCO IDOC Server for multiple destinations

我正在开发一个 IDOC 服务器,它可以连接到同一 SAP 系统上的多个目的地(网关主机相同)并接收 IDoc。我不确定我需要多个 JCoServer 实例 运行 还是具有多个目的地的单个 JCoServer。

如果是后者,为什么在提供服务器数据时会有一个参数指定目标名称使用jco.server.repository_destination 属性?

属性 jco.server.repository_destination 用于告诉 JCoServer 使用哪个 JCoDestination 来从 SAP 系统查询所需的 RFC 元数据。正确解释传入的 RFC 请求数据始终需要 RFC 元数据。

因此,如果您的 JCoServer 仅用于服务来自同一 SAP 系统(同一 SID)的 RFC 请求,则指定 jco.server.repository_destination 就足够了。无论从该 ABAP 系统使用哪个 RFC 目标(在 SM59 中定义),RFC 元数据都不会更改。

但是如果 JCoServer 还应该服务于从其他 SAP 系统(从其他 SID)发起的 RFC 请求,那么所需的 RFC 元数据可能会有所不同,您应该另外指定一个 jco.server.repository_map。通常,RFC 元数据应始终从发出 RFC 请求的同一 SAP 系统查询。

顺便说一句,您不能在相同的jco.server.gwhostjco.server.gwserv处启动具有相同jco.server.progid的多个JCoServer实例进行注册。如果您尝试,那么 JCo 将抛出一些异常。每个 progid/gwhost/gwserv 组合集需要一个 JCoServer 实例。