问题
I'm unable to connect Oracle 11 database remotely using following piece of code. However, same code works fine if I try to connect Oracle 9 database which is installed on my machine. What is missing ?
( I'm not getting any error, Lotus Notes hangs )
import lotus.domino.*;
import java.sql.*;
import oracle.jdbc.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
//Calling connection method
Connection conn= getOracleConnection(db);
if(conn!=null){
System.out.println("Connected..");
}
else {
System.out.println("There is a problem in connecting database..");
System.exit(0);
}
} catch(Exception e) {
e.printStackTrace();
System.exit(0);
}
}
private static Connection getOracleConnection(Database db) throws Exception {
// Register driver
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
//Retrieving connection string from profile document.
String host = "SPRPRG020.int.server.com";
String ip = "1521";
String user = "system";
String password = "password";
String sid = "XE";
String url="jdbc:oracle:thin:@"+host+":"+ip+":"+sid;
return DriverManager.getConnection(url, user, password);
}
}
回答1:
OK Guys, Now I'm able to connect.. Here are all possible connection string I've tried and all works,
1- "jdbc:oracle:thin:@server.cgg.com:1569:ServiceName"
2- "jdbc:oracle:thin:@//server.cgg.com:1569/ServiceName"
3- "jdbc:oracle:thin:@server.cgg.com:1569/ServiceName"
回答2:
Use this, syntax for JDBC URL for oracle 11 g has changed
<property name="url" value="jdbc:oracle:thin:@//localhost:1521/service_name" />
来源:https://stackoverflow.com/questions/3573861/problem-in-connecting-oracle-11g-through-jdbc-thin-driver-domino-java