RFC-вызов не работает на Mac OS с использованием JCO Lib и Java
Вызов SAP RFC не работает на платформе Mac OS. Тот же код работает на Windows. Есть интересные вещи, что если я подключаюсь к sap с помощью SAP GUI, я успешно вызываю RFC на Mac. Я использую sap официальный jco lib для подключения.
Конфиг моей локальной машины:
SAP Java Connector runtime information
Java Runtime:
Operating System : Mac OS X 10.12.4 for x86_64
Java VM : 1.8.0_121 Oracle Corporation
Default charset : UTF-8
Versions:
JCo API : 3.0.16 (2016-12-06)
JCo middleware : JavaRfc 2.2.19
JCo library : 721.800
Library Paths:
Path to JCo archive : /Users/**/sapcorejco/lib/sapjco3.jar
Path to JCo library : /Users/**/lib/darwinintel64/libsapjco3.jnilib
Моя ошибка
ERROR [hybrisHTTP10] [DefaultSAPRFCDestinationService] com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Initialization of destination SQ2 failed: Connect to SAP gateway failed
Деталь:
LOCATION CPIC (TCP/IP) on local host
ERROR timeout occured
Я думаю, что основная проблема связана с MAC OS, потому что тот же код запускается в машине Windows. Может быть, мы пропустили какую-то библиотеку из SAP GUI? Кто-нибудь сталкивался с этой проблемой?
2 ответа
Я наконец-то решил проблему. Проблемы, связанные с VPN-приложениями. Я использую для vpn приложение Tunnelblick. Мы используем стороннюю vpn, и версия по умолчанию tunnelblick не полностью поддерживает. Мы изменили версию tunnelblick и решили все проблемы. Версия Tunnelblick по умолчанию: 2.4.6, но я использую 2.3.18 для vpn из стороны в сторону.
Ошибка "истекло время ожидания" из локального низкоуровневого уровня CPIC JCo сообщается из стека TCP/IP операционной системы. Это указывает на то, что узел партнера (указанный узел шлюза SAP) не был достигнут или не отвечает. Ошибка происходит ниже уровня протокола SAP, то есть на некотором уровне TCP/IP.
Если система SAP в целом достижима и доступна с другими программами или с других хостов того же сегмента сети, я предлагаю включить уровень трассировки CPIC 2 (-Dcpic.trace=2) и изучить его, если эта трассировка может помочь в определении первопричины. Например, также возможны проблемы с инициализацией библиотеки CPIC, поскольку невозможно определить собственный IP-адрес или имя хоста или не может быть решено собственное имя хоста. Я думаю, что требуется, чтобыping <ownhostname>
без домена должен работать. Рабочийping <ownhostname>.local
"было бы недостаточно, насколько я знаю. Если это будет основной причиной, возможно, это поможет добавить собственное имя хоста к etc/hosts
файл.
Здесь можно только догадываться, не имея более подробной информации о самом сообщении об ошибке, трассировке CPIC и знаниях о вашей сетевой инфраструктуре и конфигурации. Но вам наверняка не хватает библиотеки здесь.