2008-09-11 2 views
1

EDIT: Стало известно, что WebMethods фактически использует NLST, не перечисляют, если это имеет значениеFTP Таймаут NLST когда каталог пуст

Наш бизнес использует сервер интеграции WebMethods для обработки большинства наших исходящих сообщений, а его функциональные возможности FTP листья что-то желаемое. У нас есть проблема, которая может быть специфичной для WebMethods, но если кто-нибудь может указать мне в сторону того, что может быть причиной этого, я бы это оценил.

При опросе двух FTP-серверов наших партнеров мы подключаемся без проблем, но при выполнении NLST в пустом каталоге (без файлов и без подкаталогов) это время отключается. Фактическая ошибка:

com.wm.net.ftpCException: [ISC.0064.9010] java.net.SocketTimeoutException: Accept таймаут

Это бросают во время призывания pub.client .ftp: ls. Я зарегистрировался с несколькими FTP-клиентами без проблем на тех же сайтах. Я использовал то, что клиент FTP по умолчанию в Windows, FileZilla и lftp. Все без проблем. Сами серверы - это не то же самое программное обеспечение FTP-сервера, что я могу сказать. Один из них - Microsoft FTP, другой я не уверен, но определенно не Microsoft.

Любая идея, что может привести к тому, что FTP-клиент перейдет в режим ожидания при ожидании ответа NLST в пустом каталоге? Видимые ответы с FTP-сервера кажутся одинаковыми, но есть ли разница в том, как NLST отвечает за пустой каталог, о котором я не знаю?

Эта проблема последовательна на этих двух серверах. Все работает нормально в каталогах с файлами или подкаталогами внутри него, но не при пустом.

Любые мысли или указания будут оценены.

Спасибо!

Эрик Сиппл

+0

WebMethods? Я ЧУВСТВУЮ ТВОЮ БОЛЬ!!! – erickson 2008-09-11 18:35:22

ответ

2

Я пробовал это в WebMethods версии IS версии 6.5 Обновления WmPRT_6-5-1_SP1, IS_6-5_SP3.

Он работал отлично в первый раз.

Я включил отладку на FTP-сервере (по умолчанию ftpd Debian). «NLST» WebMethods оценивает переданный ему активный/пассивный параметр.

Нет ничего особенного в команде NLST и ее правильном поведении с пустым каталогом - если работает LIST, тогда должны быть RETR, STOR и NLST. Если NLST работает с непустым каталогом, он должен работать с пустым.

Так что я думаю, что либо:

  • Ваша версия WM имеет ошибку шахту не
  • Ваш FTP-сервер имеет ошибку мой не
  • Там в дурацком протокол известны брандмауэр в вашей системе, который не любит сокеты данных FTP, в которых нет данных.

брандмауэр производителей немного своенравные, когда дело доходит до FTP ... При тестировании с другими клиентами, убедитесь, что он из той же машины, на которой работает WebMethods Integration Server.

Просто для записи, вот что должно произойти для активного NLST

  • клиента открывает сокет и посылает команду PORT с деталями этого сокета
  • клиент посылает NLST команде
  • сервера подключается к гнезду для прослушивания клиента (это сокет данных)
  • сервер передает листинг через сокет данных (в этом случае нулевые байты)
  • сервер закрывает гнездо данных

... и в пассивном режиме

  • клиент посылает команду PASV
  • сервер открывает сокет, и отвечает ответ PASV, содержащий сведения о нем
  • клиент подключается к прослушиванию сокет (это является гнездом данных)
  • клиент отправляет команду NLST
  • сервер передает список через сокет данных (нулевые байты снова)
  • сервер закрывает сокет данных
2

Я не уверен, если это была та же проблема, но у меня были подобные симптомы, некоторое время назад с помощью другого клиента FTP в Java (commons.net). Проблема оказалась вызвана активным/пассивным режимом соединения. Прошу прощения, я не могу дать вам более подробную информацию, это все, что я могу запомнить ... надеюсь, что это поможет.

2

Guillermo Vasconcelos был верным в своем ответе. Существует два режима FTP: активный и пассивный. Режим по умолчанию FTP активен. Активу требуется, чтобы сервер подключался к клиенту на каком-то порту TCP/IP. Это не работает с брандмауэрами, потому что вероятность того, что этот порт будет заблокирован, или если вы находитесь за маршрутизатором с NAT, не отображается.

Если вы используете режим пассивного (PASV), вы не должны получать зависание.

0

Я собираюсь запустить несколько новых тестов с настройками пассивного завтра, когда здесь будет проведено техническое обслуживание, но я не уверен, что это проблема. Мы можем получить список каталогов, если в этом каталоге есть файлы или подкаталоги. Это происходит только тогда, когда каталог, в котором находится NLST-ing, пуст.

Будет ли активная/пассивная разница проявляться только в пустом каталоге или есть ли другая возможность?

0

FTP требует, чтобы и указанный порт и один над ним будет открыт через брандмауэр. Когда у меня возникли проблемы с тайм-аутом webMethods, это произошло потому, что брандмауэр не открыл открытый порт.

Howard

Смежные вопросы