2011-09-15 4 views
1

이미 연결 문자열과 DBA 사용자 이름이 있습니다. 나는 사용자로부터 DBA 암호를받습니다. 그에서 제공하는 암호가 맞다면, 나는 그것이 내가 그 예외가 있기 때문에 잘못된 암호 또는 네트워크 타임 아웃의 경우 찾아야되는 SQLException을 던진다 지금Oracle DB에서 JDBC를 사용할 때 연결 시간이 실제로 초과되었는지 또는 자격 증명이 잘못되었는지를 찾는 방법은 무엇입니까?

String connString = "jdbc:oracle:thin:@" + connDesc; 
    Properties props = new Properties(); 
    props.put("user", user); 
    props.put("password", pwd); 

    props.put("internal_logon", "sysdba"); 
    Class.forName("oracle.jdbc.OracleDriver").newInstance(); 
    Connection conn = DriverManager.getConnection(connString, props); 

를 사용하여 연결을 만들려고 확인하십시오. 그것을 할 방법이 있습니까? 또한 현재 수행중인 작업보다 암호를 확인하는 더 좋은 방법이 있습니까?

답변

4

SQLException.getErrorCode() 메서드를 사용하여 오류에 대한 Oracle 관련 오류 코드를 읽을 수 있습니다. 잘못된 사용자 이름/암호 조합에 대한

, 오류 코드는 '네트워크 타임 아웃'을 의미하는 오류가 무엇인지 정확히 나에게 분명하지 않다 1017

이다. 메시지가 The Network Adapter could not establish the connection 인 경우 원하는 오류 코드는 17002로 표시됩니다. JDBC를 사용하여 로컬 Oracle XE 인스턴스에 연결하려고 시도했지만 TNS 수신기가 종료 된이 오류가 발생했습니다.

사용자 이름/암호를 확인하는 더 좋은 방법은 해당 사용자 이름과 암호를 사용하여 데이터베이스에 대한 연결을 만드는 것입니다.

+0

감사합니다. 내 코드에서 테스트 해 보겠습니다. – Jagat

관련 문제