Подключение к внешней базе данных через telnet - PullRequest
0 голосов
/ 10 августа 2011

У меня есть Java-программа, которая подключается к базе данных MS SQL.Программа работает отлично при работе через Eclipse, однако, я получаю сообщение об ошибке при запуске через AIX:

java.sql.SQLException: ошибка сети IOException: удаленный хост отказалпопытка подключения.

Я могу успешно пропинговать сервер, но не могу подключиться к серверу через telnet.Я также не могу telnet с моего рабочего стола Windows.

Я использую jtds для подключения:

String connectionString = "jdbc:jtds:sqlserver://"+dropez_ip_address+"/"+dropez_db_name;
ResultSet rs = null;
Statement stmt = null;

try{

    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    Connection conn = DriverManager.getConnection(connectionString, dropez_db_username, dropez_db_password);

    stmt = conn.createStatement();
}catch(Exception e){}

Вот некоторая документация от jTDS относительно проблемы, но я все еще не могу решить проблему.

Why do I get java.sql.SQLException: "Network error IOException: Connection refused: connect" when trying to get a connection?

The "Connection refused" exception is thrown by jTDS when it is unable to connect to the server. There may be a number of reasons why this could happen:

    - The server name is misspelled or the port number is incorrect.
    - SQL Server is not configured to use TCP/IP. Either enable TCP/IP from SQL Server's Network Utility app or have jTDS connect via named pipes (see the URL format for information on how to do this).
    - There is a firewall blocking port 1433 on the server.

To check whether TCP/IP is enabled and the port is not blocked you can use "telnet 1433". Until telnet doesn't connect, jTDS won't either. If you can't figure out why, ask your network administrator for help.

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Если вы не можете подключиться через telnet через порт 1433, вы заблокированы брандмауэром где-то посередине между вашей машиной и сервером.Это не проблема, связанная с Java.

Может ли быть так, что когда вы говорите "он отлично работает при затмении, но не в AIX", вы используете около 2 разных компьютеров?Если это так, тот, у которого есть Eclipse, не защищен брандмауэром, тот, в котором вы развернули свое приложение, заблокирован.Это ошибка уровня 3 (уровень TCP) модели TCP-IP.

С уважением, Стефан

0 голосов
/ 10 августа 2011

Вероятно, в вашей базе данных SQL Server не включен протокол TCP / IP:

  1. В Microsoft SQL Server 2005 -> Инструменты настройки откройте «Диспетчер конфигурации Microsoft SQL Server».

  2. Разверните «Конфигурация сети SQL Server 2005», а затем нажмите «Протоколы для».

  3. Щелкните правой кнопкой мыши «TCP / IP» и выберите «Включить». Значок протокола изменится, показывая, что протокол включен.

Для SQL Server 2008:

SQL Server 2008 Network Configuration

...