【问题标题】:JCO IDOC Server for multiple destinations用于多个目的地的 JCO IDOC 服务器
【发布时间】:2017-04-28 07:53:34
【问题描述】:

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

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

【问题讨论】:

    标签: java jco idoc sapjco3


    【解决方案1】:

    属性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.gwhostjco.server.gwserv 上注册。如果你尝试,那么 JCo 会抛出一些异常。每个 progid/gwhost/gwserv 组合集都需要一个 JCoServer 实例。

    【讨论】:

    • 谢谢,但我猜我也在使用不同的jco.server.progid。情况是我在 SAP 端的不同程序上注册的目的地很少(相同的 gwhost)我认为这应该能够处理单个 JCoServer。不是吗?
    • 没有。每个 progid/gwhost/gwserv 组合集都需要一个 JCoServer 实例。无法为一台服务器指定多个 progid。 progid 应该标识要向其发送 RFC 请求的服务器程序。如果您想处理相同的服务器程序,请不要在 ABAP 端配置不同的 progid。否则,您必须使用多个 JCoServer 实例和注册连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多