2011-08-09 6 views
0

MS SQL 데이터베이스에 연결하는 Java 프로그램이 있습니다. 프로그램은 Eclipse를 통해 실행할 때 완벽하게 작동하지만 AIX를 통해 실행할 때 오류가 발생합니다.Java를 사용하여 외부 데이터베이스에 연결

java.sql.SQLException : 네트워크 오류 IOException : 원격 호스트가 시도한 연결 작업을 거부했습니다.

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){} 
+1

사용자 이름 암호 쌍이 올바른지 확인하십시오. 그리고 SQL 서버가 시스템에서 실행되고 있는지 확인하십시오. 또한 포트 번호를 확인하십시오. –

+0

또한 데이터베이스에 원격으로 액세스 할 수있는 권한이 있는지 확인하십시오 (기본적으로 원격 액세스를 거부하는 것이 일반적입니다). – tsds

+0

Windows에서 연결이 작동 했으므로 권한이 있다고 가정합니다. 이는 AIX에서 작동하지 않습니다. – Mike

답변

1

jTDS documentation에서 : 나는 연결 jtds 라이브러리를 사용하고

하려고 할 때 "네트워크 오류 IOException이가 : : : 연결이 거부 연결"

이유는 무엇 java.sql.SQLException이는 어떻게해야합니까 연결 되니?

jTDS가 서버에 연결할 수없는 경우 "Connection refused"예외가 발생합니다. 이 문제가 발생할 수있는 데는 여러 가지 이유가있을 수 있습니다.

  • 서버 이름이 잘못되었거나 포트 번호가 잘못되었습니다.
  • SQL Server가 TCP/IP를 사용하도록 구성되어 있지 않습니다. SQL Server의 Network Utility 응용 프로그램에서 TCP/IP를 사용하도록 설정하거나 jTDS를 명명 된 파이프를 통해 연결하십시오 (자세한 내용은 URL 형식을 참조하십시오).
  • 서버에 방화벽 차단 포트 1433이 있습니다.

TCP/IP가 활성화되어 있고 포트가 차단되지 않았는지 확인하려면 "telnet 1433"을 사용할 수 있습니다. 텔넷이 연결될 때까지 jTDS도 연결되지 않습니다. 이유를 파악할 수 없으면 네트워크 관리자에게 도움을 요청하십시오.

내 방화벽이 방화벽에서 AIX 호스트 연결을 허용하지 않기 때문입니다.

+0

"telnet _ipaddress_" "telnet : connect : 원격 호스트가 연결 시도 시도를 거부했습니다." – Mike

+0

@Mike,'telnet ipaddress port'로 테스트해야합니다. 기본적으로'telnet'은 포트 23을 사용합니다. 기본 SQL 서버 포트는 1433입니다. – Vlad

+0

'ping ipaddress'는 응답을받습니다 – Mike

관련 문제