Тайм-аут во время выделения при вызове RFC

Я пытаюсь создать соединение SAP RFC с новой системой.

Насколько я знаю, брандмауэр (в данном случае на порт 3321) открыт.

Я получаю это сообщение на клиенте:

RFC_COMMUNICATION_FAILURE (rc=1): key=RFC_COMMUNICATION_FAILURE, message=
LOCATION    SAP-Gateway on host ax-swb-q06.prod.lokal / sapgw21
ERROR       timeout during allocate
TIME        Thu Jul 26 16:45:48 2018
RELEASE     753
COMPONENT   SAP-Gateway
VERSION     2
RC          242
MODULE      /bas/753_REL/src/krn/si/gw/gwr3cpic.c
LINE        2210
DETAIL      no connect of TP sapdp21 from host 10.190.10.32 after 20 sec
COUNTER     3
 [MSG: class=, type=, number=, v1-4:=;;;]

И это сообщение на сервере SAP

sap-syslog-скриншот

Любая подсказка, что нужно сделать, чтобы заставить RFC работать?


person guettli    schedule 27.07.2018    source источник


Ответы (2)


С этой небольшой информацией никто не может знать, в чем проблема. Но это связано с вашей сетью и конфигурацией системы SAP.

Я предполагаю, что ваш брандмауэр выполняет некоторую трансляцию сетевых адресов (NAT), и новый IP-адрес за брандмауэром больше не совпадает с известным. SAP выполняет некоторые собственные проверки безопасности IP/имени хоста.

Если это еще не сделано, проверьте, открыв порты 3221, 3321 и 4821 в брандмауэре. Также проверьте конфигурацию шлюза SAP, какие IP-адреса и имена хостов настроены как допустимые для него (посмотрите, что отслеживается в начале файла трассировки шлюза dev_rd на стороне ABAP).

Также подумайте, возможно, использование SAProuter будет лучшим вариантом для ваших нужд.

person Trixx    schedule 27.07.2018
comment
вы говорите, что SAP выполняет проверки безопасности. Красиво звучит хорошо. Если проверка безопасности не проходит. Какое сообщение об ошибке вы получаете? Я думаю, что это не тайм-аут во время выделения, как в моем случае. Что вы думаете? - person guettli; 30.07.2018
comment
Я не знаю, но я думаю, что вы получите сообщение об отказе в соединении или не разрешено. тайм-аут во время выделения, безусловно, является ошибкой сети низкого уровня. Однако может возникнуть дополнительная ошибка, если шлюз SAP будет использовать неправильный IP-адрес для внутренней связи с диспетчером рабочих процессов. Поэтому я настоятельно рекомендую проверить файл dev_rd в качестве следующего шага и посмотреть, какие имена хостов и IP-адреса настроены как действительные. - person Trixx; 30.07.2018

в моем случае это работает, если ashost — это имя хоста, а не IP-адрес!

Не спрашивайте меня, почему, но это не удается:

Connection(user='x', passwd='...', ashost='10.190.10.32', sysnr='21', client='494')

Но это работает:

Connection(user='x', passwd='...', ashost='ax-swb-q06.prod.lokal', sysnr='21', client='494')

Это странно, так как разрешение DNS происходит до связи TCP.

Кажется, что значение ashost используется внутри соединения. Странный. Для большинства обычных протоколов (http, ftp, pop3, ...) это не имеет значения. Или вы получите, по крайней мере, лучшее сообщение об ошибке.

person guettli    schedule 27.07.2018
comment
Нет, ASHOST не обязательно должно быть символическим именем хоста. Как правило, можно также использовать IP-адрес. Это должно быть что-то другое. Можете ли вы пропинговать 10.190.10.32 на уровне ОС из командной строки? Вы уже используете IPv6, и это обязательно в вашей сетевой инфраструктуре? - person Trixx; 27.07.2018
comment
@Trixx, так как я не мог в это поверить. Я пробовал это несколько раз. С IP я получил ошибку выше, с именем хоста это сработало. DNS преобразует имя хоста в IP-адрес, а имя хоста отсутствует в /etc/hosts. Я проверил подключение с помощью tcptraceroute к порту 3321, и оно работало с обеими версиями. Оба выхода tcptraceroute равны. Я рад иметь решение, но не знаю, почему это решило проблему. - person guettli; 27.07.2018
comment
@Trixx Я перефразировал ответ. Я изменил жирную формулировку с общей истины на ответ этого конкретного случая. Я знаю не больше, чем текущий случай. Спасибо за ваш отзыв. - person guettli; 27.07.2018