code follows>>>>>
import java.sql.*;
public class DbHarness{
public static void main(String [] args){
DbHarness thisTest = new DbHarness();
thisTest.test();
//thisTest.connect();
}
public void DbHarness(){}
public void test(){
System.out.println("about to connect");
connect();
System.out.println("Connection complete");
}
public void connect(){
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String connectString = "jdbc:oracle:oci:@BOB";
conn = DriverManager.getConnection(connectString,
"bobuser", "bobpassword");
if (conn!=null){
System.out.println("connection made");
}
else{
System.out.println("connection NOT made");
}
}
catch(ClassNotFoundException cnfe) {
System.err.println(cnfe);
}
catch(SQLException sqle) {
System.err.println("error connecting to db "+
sqle.toString()); //error connection to database
sqle.printStackTrace();
}
finally{
if (conn!=null){
try{
conn.close();
}
catch(SQLException e){
System.err.println("can't close connection
"+e.toString());
}
}
}
}
}
//end code
where BOB is the tnsnames.ora file entry for my database and bobuser
is the user name and bobpassword is the password
full output is
about to connect
error connecting to db java.sql.SQLException: Closed Connection
java.sql.SQLException: Closed Connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:2348)
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:477)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
va:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at DbHarness.connect(DbHarness.java:26)
at DbHarness.test(DbHarness.java:13)
at DbHarness.main(DbHarness.java:6)
Connection complete
Thanks in advance
Dave Holland
I only wrote jdbc code once and what I have looks like:
try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn =
DriverManager.getConnection ("jdbc:oracle:oci8:@connectstring", dbUser,
dbPw);
...
and that works. Did you make sure you can logon to the database using that
connect string in SQLplus?
hth
rob van lopik
Hi,
Both DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver()); and
Class.forName("oracle.jdbc.driver.OracleDriver"); can be used to
register the driver, the 'DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver())' way tends to be used in non-JDK
JVMs such as Microsofts. I've not yet worked out where the problem
is. I suspect it could be in my install of the oracle client, I'll
pursue this and post what I find.
Dave Holland
Dave,
The only time I got this error was when my JDBC class versions did not
match the OCI version - specifically I was using JDBC with Jdeveloper10g
to connect using OCI in my 9i oracle_home. Sync'ing up the JDBC/OCI
versions should solve this problem.
--
Shanmu
I am also getting the same/similar message when I am trying to connect
to Oracle database.
I am able to connect to the database if I add the connection string
put in tnsnames.ora in the statement as mentioned below:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@(description=(address=(
host=10.8.32.178)(protocol=tcp)(port=1521))(connect_data=(sid="+BCVDatabase+")))",BCV_user,
BCV_password);
But when I am using the statement as below
Connection conn = DriverManager.getConnection("jdbc:oracle:oci:@VLCTYPOC",
BCV_user, BCV_password);
and adding connection String for VLCTYPOC in TNSNAMES.ora, I am
getting the error message as java.sql.SQLException: Closed Connection.
Shanmuhanathan T <shan...@mailinator.com> wrote in message news:<v0bHc.18$kO4...@news.oracle.com>...