2017-11-30 14 views
0

아마존 오라클 데이터베이스에 자바 파일을 연결하고 싶습니다.넷빈즈 - 오라클 DB - AWS "아마존 RDB"- 자바 8

DataSource.java

public class DataSource { 

private static String dbName = System.getenv("PUBLIC"); 
private static String userName = System.getenv("root"); 
private static String password = System.getenv("3deemala7sas"); 
private static String hostname = System.getenv("oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com"); 
private static String port = System.getenv("1521"); 

public static final String JDBC_DRIVER = "oracle.jdbc.OracleDriver"; 
public static final String DB_URL = "jdbc:oracle:thin://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; 

public static boolean checkDomain() 
{ 
    if (System.getenv("oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com") != null) { 
     return true; 
    } 
    return false; 
} 

DbConnection.java

public static Connection getConnection() 
{ 


    try { 
     Class.forName(DataSource.JDBC_DRIVER); 
     connection = DriverManager.getConnection(DataSource.DB_URL); 
     //connection = (Connection) DriverManager.getConnection(DataSource.DB_URL); 

     System.out.println("Connected ...."); 

     return connection; 
    } 
    catch (SQLException ex) { 
     System.out.println("Error syntax"); 
     System.out.println(ex.toString()); 
     ex.printStackTrace(); 
    }catch (ClassNotFoundException ex) { 
     System.out.println("Class not found error ..."); 
    } 


    return null; 
} 

App01.java

public class App01 { 



public static void main(String[] args) throws SQLException { 
    Connection connection = null ; 
    System.out.println(DataSource.checkDomain()); 
    connection = DbConnection.getConnection(); 

}} 

예외

java.sql.SQLRecoverableException : IO 오류 : 네트워크 어댑터 수 연결을

주를 설정하지 : 나는 dbvisualizer를 사용하여 성공적으로 연결 한 또한 neatbeas 데이터베이스 서비스를 사용하도록 시도하고 너무

넷빈즈 오류 연결되지 않습니다 오라클 : JDBC의 연결을 설정할 수 없습니다 얇은 : @oracleinstance를 .ctnrs4kazdmm.ap-south-1.rds.amazonaws.com : 1521 : oracle.jdbc.OracleDriver를 사용하는 XE (리스너가 다음 오류로 연결을 거부했습니다. ORA-12505, TNS : listener가 현재 SID를 알 수 없습니다. 연결 설명자 )

답변

0

오류 메시지 ORA-12505, TNS:listener does not currently know of SID given in connect descriptor을 기반으로, 귀하의 연결에 오류가 있다고 생각합니다. n 문자열. 특히 SID을 잘못 사용했을 가능성이 큽니다.

oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com:1521:XE

다음 연결 문자열 oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com:1521:orcl을 사용해보십시오. 일반적으로 RDS에서 Oracle 인스턴스를 만들 때 기본 SIDorcl입니다.

AWS CLI를 사용하여 SID를 확인할 수도 있습니다. DBNAME을 (이 경우 ORCL 단위) SID이다

$ aws rds describe-db-instances 
{ 
"DBInstances": [ 
... 
    { 
     "DBInstanceStatus": "available", 
     "DBInstanceIdentifier": "MYORACLEDB", 
     "MasterUsername": "USERWITHSYSDBA", 
     "EngineVersion": "11.2.0.4.v1", 
     ... 
     "Endpoint": { 
      "Port": 1521, 
      "Address": "MYORACLEDB.blahblahblach.us-west-2.rds.amazonaws.c                                       om" 
     }, 
     "PendingModifiedValues": {}, 
     ... 
     "DBName": "ORCL", 
     ... 

.

0

내 질문에 답변 해 주셔서 감사합니다.

나는 그것을 알아 냈다. 실수는 db에 연결하는 URL에 있습니다. 그래서, 무엇을 발견하면 URL은 다음과 같이해야한다는 것입니다 : -

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@"+hostname+":1521:orcl", "username", "password"); 

ORCL은 AWS (아마존 클라우드)

감사

에 대한 만들면 기본적 DB를 이름입니다