JCO IDOC Server для нескольких направлений

Я разрабатываю сервер IDOC, который может подключаться к нескольким адресатам в той же системе SAP (хост шлюза будет таким же) и получать IDoc. Я не уверен, что мне нужен несколько экземпляров JCoServer или один JCoServer с несколькими местами назначения.

Если последнее имеет значение, почему бы указать параметр для назначения имени получателя с использованием свойства jco.server.repository_destination при предоставлении данных сервера?

Ответ 1

Свойство jco.server.repository_destination предназначено для указания JCoServer, который JCoDestination будет использовать для запроса необходимых метаданных RFC из системы SAP. Метаданные RFC всегда необходимы для правильной интерпретации входящих запросов RFC.

Итак, если ваш JCoServer предназначен только для обслуживания RFC-запросов, которые исходят из одной и той же системы SAP (тот же SID), то достаточно указать jco.server.repository_destination. Метаданные RFC не будут меняться независимо от того, какой RFC-приемник (определенный в SM59) используется из этой системы ABAP.

Но если JCoServer также должен обслуживать запросы RFC, инициированные из других систем SAP (из других идентификаторов безопасности), то необходимые метаданные RFC могут отличаться, и вы должны указать дополнительно jco.server.repository_map. В общем случае метаданные RFC всегда должны запрашиваться из той же системы SAP, откуда поступает запрос RFC.

Кстати, вы не можете запускать несколько экземпляров JCoServer с тем же jco.server.progid для регистрации на тех же jco.server.gwhost и jco.server.gwserv. Если вы попробуете, JCo выдаст какое-то исключение. Вам нужен один экземпляр JCoServer для каждого набора комбинаций progid/gwhost/gwserv.