I'm developing a IDOC server which can connect to multiple destinations on same SAP system(gateway host will be same) and receive IDocs. I'm not sure that I need multiple JCoServer instance running or single JCoServer with multiple destinations.
If latter is the case, why would there is a parameter to specify the destination name using jco.server.repository_destination
property when providing the server data?
The property jco.server.repository_destination
is for telling the JCoServer which JCoDestination to use for querying required RFC meta data from the SAP system. RFC meta data is always needed for interpreting incoming RFC request data correctly.
So if your JCoServer is only for serving RFC requests which originate from the same SAP system (the same SID), then specifying jco.server.repository_destination
is sufficient. The RFC meta data won't change regardless which RFC destination (defined in SM59) is used from this ABAP system.
But if the JCoServer is also supposed to serve RFC requests initiated from other SAP systems (from other SIDs), then the needed RFC meta data may differ and you should specify a jco.server.repository_map
in addition. In general, RFC meta data should always be queried from the same SAP system where an RFC request originates from.
By the way, you cannot start multiple JCoServer instances with the same jco.server.progid
for registering at the same jco.server.gwhost
and jco.server.gwserv
. If you try then JCo will throw some exception. You need one JCoServer instance for each progid/gwhost/gwserv combination set.