Я пытаюсь получить доступ к базе данных оракула, см. Мой код ниже.
Проблема в том, что база данных является кластерной БД, поэтому, если одна из них не работает, вы можете получить доступ к другой. В настоящее время проблема заключается в том, чтобы остаться на одном узле, поэтому могу ли я обновить свой Java-код и, если он не проходит, проверить еще раз, пока не будет установлено соединение?
Я использую файл свойств для вставки учетных данных в базу данных. Когда соединение установлено, вводится запрос и возвращается результат.
public static String connectDB(String configFile, String query) throws FileNotFoundException, IOException, SQLException, ClassNotFoundException{
Properties p = new Properties();
p.load(new FileInputStream(configFile));
String serverName = (p.getProperty("RMS_DBServerName"));
String portNumber = (p.getProperty("RMS_PortNumber"));
String sid = (p.getProperty("RMS_SID"));
String url = "jdbc:oracle:thin:@//" + serverName + ":" + portNumber + "/" + sid;
String username = (p.getProperty("RMS_Username"));
String password = (p.getProperty("RMS_Password"));
Class.forName("oracle.jdbc.driver.OracleDriver");
sleep(10);
Connection connection = DriverManager.getConnection(url,username,password);
sleep(5);
String setr = null;
try {
Statement stmt = connection.createStatement();
try {
ResultSet rset = stmt.executeQuery(query);
try {
while(rset.next())
setr = rset.getString(1);
return setr;
}
finally {
try {
rset.close();
}
catch (Exception ignore) {}
}
}
finally {
try {
stmt.close();
}
catch (Exception ignore) {}
}
}
finally {
try {
connection.close();
}
catch (Exception ignore) {}
}
}