Проверить соединение через AS400

Мой метод должен попытаться подключиться к другому серверу БД. Когда я запустил свое приложение на Linux Server - все было в порядке. Когда запускаю в ОС Windows - у меня java.net.SocketTimeoutException: Read timed out

 private boolean pingServer(String host) {
    String username = "username";
    String password = "password";
    boolean successful;

    AS400 as400 = new AS400(host, username, password);
    SocketProperties socketProperties = as400.getSocketProperties();
    socketProperties.setLoginTimeout(TIMEOUT_MILLISEC);
    socketProperties.setSoTimeout(TIMEOUT_MILLISEC);

    as400.setSocketProperties(socketProperties);
    try{
        successful = as400.validateSignon();
    } catch (AS400SecurityException e) {
        successful = true;
    } catch (IOException e) {
        successful = false;
    } catch (TransactionException e) {
        successful = false;
    }
    as400.disconnectAllServices();
    as400 = null;
    return successful;
}

Кто-нибудь может дать мне совет? Спасибо.


person Khrystyna Makar    schedule 03.12.2014    source источник


Ответы (1)


Соединения AS / 400 используют множество сетевых портов, которые должны быть вам доступны.

Попробуйте отключить все брандмауэры между вами и сервером и повторите попытку. Это включает программный брандмауэр (может быть частью антивирусного пакета) в системе Windows.

person Thorbjørn Ravn Andersen    schedule 03.12.2014
comment
Кроме того, вам не нужно устанавливать свойства сокета. - person David G; 03.12.2014
comment
Спасибо за ответ. Но я не могу отключить брандмауэры. Может ты знаешь другой способ, который может мне помочь? - person Khrystyna Makar; 03.12.2014
comment
В этом случае вам потребуется помощь администраторов AS / 400. - person Thorbjørn Ravn Andersen; 03.12.2014
comment
Вы можете найти список портов, которые нужны JT400, здесь: www-03.ibm.com/systems/power/software/i/toolbox/faq/ports.html - person David G; 03.12.2014
comment
Большое спасибо за вашу помощь. - person Khrystyna Makar; 03.12.2014
comment
Код работал при подключении из системы Linux. Поэтому имеет больше смысла предположить, что проблема где-то в системе Windows, а не в том, что вы называете AS / 400 (вероятно, IBM Power System). - person WarrenT; 05.12.2014
comment
Брандмауэры @WarrenT включают программный брандмауэр (и антивирус) в системе Windows. Я вижу, что это не совсем ясно из нынешней формулировки. - person Thorbjørn Ravn Andersen; 05.12.2014
comment
Привет, @KhrystynaMakar, тебе удалось решить эту проблему? Я столкнулся с почти идентичной проблемой: соединения работали на сервере Linux, но у меня возникли проблемы с тайм-аутом сокета на сервере Windows. Цените любые подсказки, которые вы могли бы дать. - person Abhi Rampal; 23.07.2015