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

Java 用于多个目的地的JCO IDOC服务器,java,jco,idoc,sapjco3,Java,Jco,Idoc,Sapjco3,我正在开发一个IDOC服务器,它可以连接到同一SAP系统上的多个目的地(网关主机将是相同的)并接收IDOC。我不确定我是否需要运行多个JCoServer实例,或者需要一个具有多个目标的JCoServer 如果是后者,,在提供服务器数据时,为什么会有一个参数使用jco.server.repository\u destination属性指定目标名称?属性jco.server.repository\u destination用于告诉JCoServer要使用哪个jcodestation从SAP系统查询所

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


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

属性
jco.server.repository\u destination
用于告诉JCoServer要使用哪个jcodestation从SAP系统查询所需的RFC元数据。为了正确解释传入的RFC请求数据,始终需要RFC元数据

因此,如果您的JCoServer仅用于服务来自相同SAP系统(相同SID)的RFC请求,那么指定
jco.server.repository\u destination
就足够了。无论此ABAP系统使用哪个RFC目的地(在SM59中定义),RFC元数据都不会更改

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


顺便说一下,您不能使用相同的
jco.server.progid
启动多个JCoServer实例,以便在同一
jco.server.gwhost
jco.server.gwserv
上注册。如果您尝试,那么JCo将抛出一些异常。对于每个progid/gwhost/gwserv组合集,您需要一个JCoServer实例。

谢谢,但我猜我也在使用不同的
jco.server.progid。。情况是,我在SAP end(同一个gwhost)的不同程序上注册了几个目的地,我认为这应该能够用单个JCoServer处理。不是吗?不是。每个progid/gwhost/gwserv组合集都需要一个JCoServer实例。无法为一台服务器指定多个ProgID。progid应该标识要向其发送RFC请求的服务器程序。如果您想处理相同的服务器程序,请不要在ABAP端配置不同的PROGID。否则,您必须使用多个JCoServer实例和注册的连接。