Сервер JCO IDOC для нескольких пунктов назначения

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

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


person Sudheera    schedule 13.12.2016    source источник


Ответы (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 (с другими SID), то необходимые метаданные RFC могут отличаться, и вам следует дополнительно указать jco.server.repository_map. Как правило, метаданные RFC всегда следует запрашивать из той же системы SAP, из которой исходит запрос RFC.

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

person Trixx    schedule 24.12.2016
comment
Спасибо, но думаю, я тоже использую разные jco.server.progid. Дело в том, что у меня есть несколько пунктов назначения, зарегистрированных в разных программах в конце SAP (тот же gwhost). Я думаю, что это должно быть в состоянии справиться с одним JCoServer. не так ли? - person Sudheera; 24.12.2016
comment
Нет. Вам нужен один экземпляр JCoServer для каждого набора комбинаций progid/gwhost/gwserv. Невозможно указать несколько прогидов для одного сервера. progid должен идентифицировать серверную программу для адресации RFC-запроса. Если вы хотите обращаться к одной и той же серверной программе, не настраивайте разные progids на стороне ABAP. В противном случае вам придется жить с несколькими экземплярами JCoServer и зарегистрированными соединениями. - person Trixx; 25.12.2016