【发布时间】:2017-04-28 07:53:34
【问题描述】:
我正在开发一个 IDOC 服务器,它可以连接到同一 SAP 系统上的多个目标(网关主机将相同)并接收 IDoc。我不确定我需要运行多个 JCoServer 实例还是需要具有多个目标的单个 JCoServer。
如果是后者,为什么在提供服务器数据时会有一个参数使用jco.server.repository_destination属性指定目的地名称?
【问题讨论】:
我正在开发一个 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 请求的同一 SAP 系统查询 RFC 元数据。
顺便说一句,您不能使用相同的jco.server.progid 启动多个JCoServer 实例以在相同的jco.server.gwhost 和jco.server.gwserv 上注册。如果你尝试,那么 JCo 会抛出一些异常。每个 progid/gwhost/gwserv 组合集都需要一个 JCoServer 实例。
【讨论】:
jco.server.progid。情况是我在 SAP 端的不同程序上注册的目的地很少(相同的 gwhost)我认为这应该能够处理单个 JCoServer。不是吗?