Is there a way to test my connection to oracle database using Java? Here\'s my code.
public class OracleConnection {
public static void main(String[] args)
You can catch SQLException from DriverManager.getConnection()
and looks for ORA-12543.
Read SQLException documentation about vendor code.
"... and if its not then the program will connect to the next ..." I wonder if a cluster connection string containing multiple server addresses could work for you. (I did not try this myself.) Look at Oracle Connection String for RAC Environment.
Don't reinvent the wheel. Oracle's JDBC driver already has this functionality built-in.
This is useful: http://www.orafaq.com/wiki/JDBC
import java.util.ArrayList;
import java.sql.*;
public class OracleConnection {
public static void main(String[] args) throws Exception {
//connect to database
Class.forName("oracle.jdbc.driver.OracleDriver");
ArrayList<String> serverNames = new ArrayList<String>();
serverNames.add("yourhostname1");
serverNames.add("yourhostname2");
serverNames.add("yourhostname3");
serverNames.add("yourhostname4");
String portNumber = "1521";
String sid = "ORCLSID";
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)" ;
for (String serverName : serverNames) {
url += "(ADDRESS=(PROTOCOL=tcp)(HOST="+serverName+")(PORT="+portNumber+"))";
}
url += ")(CONNECT_DATA=(SID="+sid+")))";
String username = "USERNAME";
String password = "PASSWORD";
// System.out.println(url); // for debugging, if you want to see the url that was built
Connection conn = DriverManager.getConnection(url, username, password);
}
}
The above code actually builds and uses url that looked like this (as example belows). I got this explicitly by uncommenting the debugging line near the end of the code:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=
(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname1)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname2)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname3)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname4)(PORT=1521))
)(CONNECT_DATA=(SID=ORCLSID)))
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(“url”,”username”,”password ″);
look more at here:http://leezk.com/tag/jdbc