Oracle 8i JDBC to connect to 9i DB?

We are having a big Java application that uses Oracle8i as underlying DB. It uses Oracle 8i JDBC for that. Now, we have to extend this application with a module that writes certain things into another DB. However, this DB is on Oracle 9i.
Q: Can we access a 9i DB using the 8i JDBC driver? If yes, is there a special configuration for the JDBC or the 9i DB?
Note: switching the 9i to "8i compatibility mode" is not an option, since we use loads of 9i features in that DB from another application that uses the 9i JDBC driver!
We tried it and we got loads of exceptions from the 8i JDBC driver.
Any comment or hint is more than welcome - we are running out of time...

Hi
I am trying exactly the same thing and am not able to use Oracle8i JDBC for Oracle9i DB. Have u been able to do this? In case yes, please tell me how.
Thanks
Ashish

Similar Messages

  • Oracle 8i jdbc/Tomcat connection issues

    Tomcat 4.1.8
    Oracle 8i JDBC Driver
    I have been able to create the DataSource as a global resource and as a local resource inside the context of the application.
    The code hangs when it attempts to create a connection. I have been able to connect to the database and perform the necessary query in a standalone application to ensure that I actually can connect.
    JSP Code:
    <html>
    <head>
    <title>VTW App</title>
    </head>
    <body>
    <%
    vtw.VTWApp tst = new vtw.VTWApp();
    tst.init();
    %>
    <h2>Results</h2>
    <%= tst.getList() %>
    </body>
    </html>
    Java Code (Class called by JSP):
    package vtw;
    import javax.naming.*;
    import javax.sql.*;
    import java.sql.*;
    public class VTWApp {
    String list = "EMPTY";
    public void init() {
    try{
    Context ctx = new InitialContext();
    if(ctx == null )
    throw new Exception("Boom - No Context");
    System.out.println("Context Created ...");
    DataSource ds =
    (DataSource)ctx.lookup(
    "java:comp/env/jdbc/oracleDB");
    if (ds != null) {
              System.out.println("DataSource Created ...");
    Connection conn = ds.getConnection();
    System.out.println("Connection Pulled");
    if(conn != null) {
                   System.out.println("Connection Good");
                   Statement st = conn.createStatement();
                   String query = "";
                   query += "select grpid, to_char(min(dtlastendtime),'mm-dd-yyyy hh24:mi:ss') ";
                   query += "from calc_table where equipmentsernum in (";
                   query += "'888000','888001'";
                   query += ") group by grpid";
                   ResultSet rs = st.executeQuery(query);
                   if(rs != null) {
                        list = "";
                        while(rs.next()) {
                             list += (rs.getString(1) + "," + rs.getString(2));
                   rs.close();
                   conn.close();
                   System.out.println("Connection Closed");
              } else {
                   System.out.println("Connection Not Established");
    }catch(Exception e) {
    e.printStackTrace();
    public String getList() { return list; }
    }

    I figured out the issue ...
    In the server.xml file the resource & resource params needed to be modified..
    1. Set type to oracle.jdbc.pool.OracleDataSource
    2. Set factory to oracle.jdbc.pool.OracleDataSourceFactory
    3. In the Java code cast the context lookup to an OracleDataSource instead of a java.sql.DataSource
    Oracles DataSource does not subclass the jdbc DataSource for its OracleDataSource class everything works fine now.
    <Resource name="jdbc/mydb" scope="Shareable" type="oracle.jdbc.pool.OracleDataSource"/>
    <ResourceParams name="jdbc/mydb">
    <parameter>
    <name>validationQuery</name>
    <value></value>
    </parameter>
                   <parameter>
                        <name>factory</name>
                        <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
                   </parameter>
    <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
         <name>url</name>
         <value>jdbc:oracle:thin:@server.company.com:1521:dbname</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>guest</value>
    </parameter>
                   <parameter>
                        <name>maxWait</name>
                        <value>10000</value>
                   </parameter>
                   <parameter>
                        <name>maxActive</name>
                        <value>100</value>
                   </parameter>
    <parameter>
    <name>user</name>
    <value>guest</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>2</value>
    </parameter>
    </ResourceParams>

  • Error while creating a report that uses Oracle OCI JDBC connectivity

    Please let me know why my CR and LF characters are removed from my forum posting *****
    Hi,
    I was trying to create a report that uses Oracle OCI JDBC connectivity. I am using Eclipse3.4 download from "cr4e-all-in-one-win_2.0.2.zip".  I have successfully created a JDBC OCI connection.
    The connection parameters are given below:
    URL: jdbc:oracle:oci8:@xe
    Database: xe
    username: <userName>
    password: <password>
    I have tested the above connection in Data source Explorer and it works fine!!!
    But I am getting the following error when I drag-and-drop a table from the list of tables. Not sure what I am missing here?  Any help is highly appreciated.
    com.businessobjects.reports.jdbinterface.common.DBException: InvalidURLOrClassName
         at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
         at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
         at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1771)
         at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:491)
         at com.crystaldecisions.reports.queryengine.Connection.t1(SourceFile:2979)
         at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2408)
         at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)
         at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
         at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
         at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)
         at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1163)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:657)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:163)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:525)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:523)
         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
         at java.util.concurrent.FutureTask.run(Unknown Source)
         at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$3.doWork(ExecutorWithIdleProcessing.java:182)
         at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
         at com.businessobjects.crystalreports.designer.core.util.thread.PriorityTask.run(PriorityTask.java:75)
         at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.runSubtask(PriorityCompoundCancellableRunnable.java:187)
         at com.businessobjects.crystalreports.designer.core.util.thread.PriorityProgressAwareRunnable.runSubtask(PriorityProgressAwareRunnable.java:90)
         at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.doWork(PriorityCompoundCancellableRunnable.java:144)
         at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
         at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$IdleTask.run(ExecutorWithIdleProcessing.java:320)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Thanks
    Karthik
    Edited by: KARTHIK1 on Oct 14, 2009 9:38 PM

    Hi Ted,
    Thanks for the feedback. I was able to create a report in Creystal Reports Designer 2008 using OCI.  It is not allowing only in the Eclipse plugin. In our environment we are not allowed to user Oracle thin connections and ONLY OCI is allowed.
    1) Can you please let me know if there is a way to do this? 
    2) Will it allow data sources using native database driver?
    3) If so, can I use JRC to create these reports from a desktop java program?
    Thanks & Regards
    Karthik
    Edited by: KARTHIK1 on Oct 15, 2009 4:38 PM

  • Oracle 8.1.5 and JDBC OCI connection problem

    We are running Oracle 8.1.5 on Solaris 7 machine, and our java application running on JDK 1.2 connects to Oracle via JDBC thin driver because we couldn't make jdbc oci driver work.
    When we try to connect via oci with the driver originally shipped with 8.1.5, we get:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: make_c_state
    at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:213)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:137)
    at JDBCTest.main(Compiled Code)
    After we downloaded 8.1.6sdk driver from technet and install it, we get:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
    at java.lang.Throwable.fillInStackTrace(Native Method)
    at java.lang.Throwable.fillInStackTrace(Compiled Code)
    at java.lang.Throwable.<init>(Compiled Code)
    at java.lang.Error.<init>(Error.java:50)
    at java.lang.LinkageError.<init>(LinkageError.java:43)
    at java.lang.UnsatisfiedLinkError.<init>(UnsatisfiedLinkError.java:42)
    at java.lang.ClassLoader.loadLibrary(Compiled Code)
    at java.lang.Runtime.loadLibrary0(Runtime.java:471)
    at java.lang.System.loadLibrary(System.java:745)
    at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:209)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:137)
    at JDBCTest.main(Compiled Code)
    I searched this forum for answer and only relevent answer from oracle was: consult README file! Readme file mentions that lobocijdbc.so file is shared library file for oci connection. That't all. So what?
    I added the directory where libocijdbc8.so resides to LD_LIBRARY_PATH, and System.getProperty("java.library.path") shows content of LD_LIBRARY_PATH correctly.
    null

    Please this is not simple as simple as checking the classpath and LD_LIBRARY_PATH.
    I tried the sample program and the result is the same. As pointed out first by Won, putting the libocijdbc8.so from SDK8.1.6 in the LD_LIBRARY_PATH has no effect at all. It gives the unsatisfied linker error. The sample program fails. However the sample program works fine with the libocijdbc8.so from sdk8.1.5. The library gets loaded. But at the time of creating the connection it gives make_c_state error.
    Here is my CLASSPATH, PATH and LD_LIBARY_PATH variables
    ORACLE_HOME=/opt/oracle/product/8.1.5
    LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/opt/oracle/product/8.1.5/lib
    PATH=/usr/openwin/bin:/usr/sbin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/opt/oracle/product/8.1.5/lib
    Hope you are able to provide better answer then check your environment variables.
    THE libocijdbc8.so FROM SDK8.1.6 DOES NOT GET LOADED AT ALL.
    Waiting for the reply.
    Please Help.
    Regards,
    Vipul Modi.
    Novell Inc.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Won, Taewoong([email protected]):
    We are running Oracle 8.1.5 on Solaris 7 machine, and our java application running on JDK 1.2 connects to Oracle via JDBC thin driver because we couldn't make jdbc oci driver work.
    When we try to connect via oci with the driver originally shipped with 8.1.5, we get:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: make_c_state
    at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:213)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:137)
    at JDBCTest.main(Compiled Code)
    After we downloaded 8.1.6sdk driver from technet and install it, we get:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
    at java.lang.Throwable.fillInStackTrace(Native Method)
    at java.lang.Throwable.fillInStackTrace(Compiled Code)
    at java.lang.Throwable.<init>(Compiled Code)
    at java.lang.Error.<init>(Error.java:50)
    at java.lang.LinkageError.<init>(LinkageError.java:43)
    at java.lang.UnsatisfiedLinkError.<init>(UnsatisfiedLinkError.java:42)
    at java.lang.ClassLoader.loadLibrary(Compiled Code)
    at java.lang.Runtime.loadLibrary0(Runtime.java:471)
    at java.lang.System.loadLibrary(System.java:745)
    at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:209)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:198)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:251)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:137)
    at JDBCTest.main(Compiled Code)
    I searched this forum for answer and only relevent answer from oracle was: consult README file! Readme file mentions that lobocijdbc.so file is shared library file for oci connection. That't all. So what?
    I added the directory where libocijdbc8.so resides to LD_LIBRARY_PATH, and System.getProperty("java.library.path") shows content of LD_LIBRARY_PATH correctly.
    <HR></BLOCKQUOTE>
    null

  • Use jdbc to connect servlet to oracle 8.1.6 database on win2k

    The code is below:
    package moreservlets;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    /** Simple servlet used to test JDBC connection. */
    public class TitleQueries extends HttpServlet {
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Connecting to Database";
    DriverManager.registerDriver (new
    oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection
    ("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery
    ("select ename from emp");
    while (rset.next()) {
    String name = rset.getString("ename");
    out.println(ServletUtilities.headWithTitle(title) +
    "<body bgcolor=\"#FDF5E6\">\n" +
    "<h1 align=\"center\">" + name + "</h1>\n" +
    "</body></html>");
    CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Oracle\Ora81\orb\classes\share.zip
    My code cannot find the JDBC driver. Any suggestions?
    Thanks.
    I get the following errors:
    C:\J2ee\moreservlets>javac -d "C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\
    EB-INF\classes" TitleQueries.java
    TitleQueries.java:19: package oracle.jdbc.driver does not exist
    oracle.jdbc.driver.OracleDriver());
    ^
    TitleQueries.java:31: cannot resolve symbol
    symbol : variable name
    location: class moreservlets.TitleQueries
    "<h1 align=\"center\">" + name + "</h1>\n" +
    ^
    2 errors

    I changed my classpath variable and my servlet
    compiles okay with the:
    "import oracle.jdbc.driver.*" statement.
    However, I still get the following error.
    Why can't it find the jdbc driver, since it finds the
    import statement?
    Apache Tomcat/4.0.3
    Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
    eDriver
    WebappClassLoader: Resource '/WEB-INF/classes/moreservlets/ServletUtilities.cl
    ass' was modified; Date is now: Tue Jul 02 09:57:26 CDT 2002 Was: Tue Jul 02 09:
    37:20 CDT 2002
    Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
    eDriver
    CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape\RmiJdbc;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\jdbc\lib\classes12.zip;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Program Files\Oracle\JDeveloper 3.2.3\jdbc\lib\oracle8.1.7\classes12.zip;C:\Oracle\Ora81\orb\classes\share.zip
    //code begins here
    package moreservlets;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import oracle.jdbc.driver.*;
    public class TitleQueries extends HttpServlet {
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection
    ("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery
    ("select * from emp");
    out.println(ServletUtilities.headWithTitle(title) +
    "<body bgcolor=\"#FDF5E6\">");
    while (rset.next()) {
    out.println("<h1 align=\"center\">"
    + rset.getString("ename") + "</h1>\n");
    out.println("</body></html>");
    catch(ClassNotFoundException cnfe) {
    System.err.println("Error loading driver: " + cnfe);
    catch(SQLException sqle) {
    System.err.println("Error connecting: " + sqle);
    }

  • Oracle keeping JDBC connections ...

    All
    has anyone come got any ideas on this:
    WLS6.0 sp2 on Win2k
    Oracle v8
    JDBC connection pool configured with 10 min connections / 50 max conns (in
    increments of 5). Shrinking is active, and is set to run every 15mins.
    What were seeing is that Oracle doesnt let go of any of the JDBC
    connections. It literally keeps them for days on end, until we have to
    manually kill them because theyre causing other DB problems.
    any ideas ?
    tks
    will

    Hello, I am using ALUI G6 (former Plumtree) and I am experiencing the same problem.
    JDBC connections are not released and we reach the connection max number easily.
    Please, can somebody help us ?
    Thanks for your help,
    Kind regards

  • JDBC SSL connection to Oracle

    Hi All,
    I have been trying to connect to Oracle using a self signed certificate from a simple Java class. I am getting the below error.
    main, handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    main, SEND TLSv1 ALERT: fatal, description = handshake_failure
    I have searched many forums but couldnt find the information of my help.
    Below are the steps I have followed as per the documentation in wp-oracle-jdbc-thin-ssl-130128.pdf.
    First Step: Created a self signed certificate and a truststore with the below commands using JDK 1.6.0_16
    Create a Keystore:
    keytool -genkey -keyalg RSA -alias MyKey -keystore keystore.jks -validity 360
    Extracting the public key:
    keytool -export -rfc -alias MyKey -keystore keystore.jks -file public.cert
    Creating the Truststore:
    keytool -import -alias MyKey -file public.cert -storetype JKS -keystore keystore.truststore
    Second Step: Added the following in listener.ora and sqlnet.ora
    listerner.ora :
    # listener.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    SSL_CLIENT_AUTHENTICATION = FALSE
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost)(PORT = 2484))
    ADR_BASE_LISTENER = D:\oracle
    WALLET_LOCATION =
    (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
    (DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
    sqlnet.ora :
    # sqlnet.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora
    # Generated by Oracle configuration tools.
    ENCRYPTION_WALLET_LOCATION =
    (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
    (DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
    # This file is actually generated by netca. But if customers choose to
    # install "Software Only", this file wont exist and without the native
    # authentication, they will not be able to connect to the database on NT.
    SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SSL_CLIENT_AUTHENTICATION = FALSE
    WALLET_LOCATION =
    (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
    (DIRECTORY = E:\misc\Secure-jdbc\OracleCertificates)
    ADR_BASE = D:\oracle\product\11.2.0\dbhome_1\log
    Third Step: Created an empty auto logon wallet and added the above created certificate as a Trusted Certificate. (Imported the .cert file into the Trusted Certificates section in Wallet Manager)
    Fourth Step: Used the below Java code to connect to the database using the truststore
    public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=ORCL11)))"; Properties props = new Properties(); props.setProperty("user", "system"); props.setProperty("password", "oracle"); props.setProperty("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore"); props.setProperty("javax.net.ssl.trustStoreType","JKS"); props.setProperty("javax.net.ssl.trustStorePassword","sudhir123#"); Connection conn=DriverManager.getConnection(url,props); System.out.println("conn:"+conn); conn.close(); } catch(Exception e) { e.printStackTrace(); } }
    Any help would be appreciated.
    Thanks.
    Edited by: user10569290 on 20-Feb-2013 22:02

    Hi EJP,
    Please find the below code changes I have done to set the properties as part of System properties instead of Connection properties. I am still getting the same error.
    Code:
    Class.forName("oracle.jdbc.driver.OracleDriver");
              String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=ORCL11)))";
              Properties systemProps = System.getProperties();
              systemProps.put("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore");
              systemProps.put("javax.net.ssl.trustStoreType","JKS");
              systemProps.put("javax.net.ssl.trustStorePassword","sudhir123#");
              System.setProperties(systemProps);
              Properties props = new Properties();
              props.setProperty("user", "system");
              props.setProperty("password", "oracle");
              /*props.setProperty("javax.net.ssl.trustStore","E:\\misc\\Secure-jdbc\\Keys and Certificates\\keystore.truststore");
              props.setProperty("javax.net.ssl.trustStoreType","JKS");
              props.setProperty("javax.net.ssl.trustStorePassword","sudhir123#");
              Connection conn=DriverManager.getConnection(url,props);
             System.out.println("conn:"+conn);
             conn.close();Please find the below output with the SSL debug enabled.
    adding as trusted cert:
    Subject: CN=Sudhir Reddy, OU=FCDMS, O=3i, L=Hyd, ST=AP, C=IN
    Issuer: CN=Sudhir Reddy, OU=FCDMS, O=3i, L=Hyd, ST=AP, C=IN
    Algorithm: RSA; Serial number: 0x511e1ebc
    Valid from Fri Feb 15 17:10:44 GMT+05:30 2013 until Mon Feb 10 17:10:44 GMT+05:30 2014
    trigger seeding of SecureRandom
    done seeding SecureRandom
    %% No cached client session
    *** ClientHello, TLSv1
    RandomCookie: GMT: 1361369602 bytes = { 14, 223, 155, 241, 143, 72, 188, 240, 205, 158, 201, 133, 217, 192, 95, 82, 61, 244, 93, 100, 12, 9, 232, 164, 116, 206, 30, 142 }
    Session ID: {}
    Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA]
    Compression Methods: { 0 }
    main, WRITE: TLSv1 Handshake, length = 73
    main, WRITE: SSLv2 client hello message, length = 98
    main, received EOFException: error
    main, handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    main, SEND TLSv1 ALERT: fatal, description = handshake_failure
    main, WRITE: TLSv1 Alert, length = 2
    main, called closeSocket()
    main, called close()
    main, called closeInternal(true)
    java.sql.SQLRecoverableException: IO Error: Remote host closed connection during handshake
         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:466)
         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:535)
         at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:218)
         at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
         at java.sql.DriverManager.getConnection(DriverManager.java:582)
         at java.sql.DriverManager.getConnection(DriverManager.java:154)
         at SecureJDBC.getSecureConnection(SecureJDBC.java:52)
         at SecureJDBC.main(SecureJDBC.java:15)
    Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:808)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
         at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
         at oracle.net.ns.Packet.send(Packet.java:421)
         at oracle.net.ns.ConnectPacket.send(ConnectPacket.java:170)
         at oracle.net.ns.NSProtocol.connect(NSProtocol.java:302)
         at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1407)
         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:328)
         ... 8 more
    Caused by: java.io.EOFException: SSL peer shut down incorrectly
         at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
         ... 16 more

  • JDBC re-connection to oracle

    I have an application using connection pooling. When the oracle
    server it is connected to is rebooted/shut down, the connections
    are of course broken. I can detect this fine but when I try to
    re-connect to the database with
    Connection connection = DriverManager.getConnection(url,
    username, password);
    the whole program just hangs on that. Seems to me that the JDBC
    driver never returns from the call. Is there some timeout I can
    set or something else I can do to make it return when the
    connection fails? The same code works for other databases and
    drivers.
    If I try to make a connection to the oracle when I start the
    app and no connection has previously been made, the driver
    returns correctly saying, no connection or something like that.
    I am using oracle 8i with the 1.2 thin drivers (classes12.zip).
    Thanks for any help..

    I have an application using connection pooling. When the oracle
    server it is connected to is rebooted/shut down, the connections
    are of course broken. I can detect this fine but when I try to
    re-connect to the database with
    Connection connection = DriverManager.getConnection(url,
    username, password);
    the whole program just hangs on that. Seems to me that the JDBC
    driver never returns from the call. Is there some timeout I can
    set or something else I can do to make it return when the
    connection fails? The same code works for other databases and
    drivers.
    If I try to make a connection to the oracle when I start the
    app and no connection has previously been made, the driver
    returns correctly saying, no connection or something like that.
    I am using oracle 8i with the 1.2 thin drivers (classes12.zip).
    Thanks for any help..

  • Couldnot connect JBuilder 6 to ORACLE 8i , JDBC driver problem

    Hi guys
    I am trying to connect to the oracle 8i database from jbuilder 6 using a simple select statement , but it gives the following error
    Root cause:
    java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
         at _0002ftestEmployee_0002ejsptestEmployee_jsp_1._jspService(_0002ftestEmployee_0002ejsptestEmployee_jsp_1.java:83)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
         at org.apache.tomcat.core.Handler.service(Handler.java:287)
         at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
         at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
         at java.lang.Thread.run(Thread.java:484)
    plse help me how to connect jbuilder to oracle to access the data. I followed jbuilder doc like from the menu (Tools �� enterprise setup �� database driver ��)
    but could not select the driver since it is marked as red (uninstalled). How can I made jdbc driver to available to jbuilder.?. I am using oracle 8i. Will oracle 8i supports jdk 1.3 b��cos I have noticed the jbuilder supports from jdk 1.3 onwards. So plse correct me if I am wrong
    waiting for reply
    sumesh

    thanks for u'r reply.
    you mean to say i need to install the new JDBC driver (Classes12.zip and nls_charset12) to the oracle/ora8i/jdbc/lib folder.currently this folder contains only classes102 and classes11.zip files and the corresponding charset only.After instaling the new classes12.zip file do i need to set the classpath?.

  • -How to use JDBC to connect the SQLServer and Oracle.

    Hi,
    I create a table in the WIP DB, I want to modify this table when use "PRE-START" activity in POD.
    SAPME version: 5.2.3.4     SDK:2.0    DB:SQL2005 and Oracle 10.2g
    SourceCode like below:
    public void execute(StartHookDTO dto) throws Exception {
              initServices();
              try{
                   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                   Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=SAPMEWIP", "sa" ,"sap12345");
                   conn.close();
              }catch(Exception e){
                   e.printStackTrace();
    Besides, I already setup the JDBC ClassPath in ConfigTool, but it gets somes error when executing.
    the error code like below:
    java.sql.SQLException: No suitable driver
    Please give me some support or a example, thank you so much!
    Br,
    Alex

    You probably want to use the WIP Datasource defined in JNDI.

  • Connecting to Oracle using JDBC

    Hi all,
    I am a new to Oracle. I am trying to connect to Oracle using JDBC
    The URL with which I tried to connect was:
    jdbc:oracle:oci8:@myServiceName,user='myLogin',password='myPassword'
    I get an error (ORA-12154)
    - TNS could not resolve service name
    When I use the same userid, password and service and connect thru' SQL*Plus it goes thru'. Is there any parameter which I am missing. Can anyone throw some light on this. I am held up with this issue badly.
    Thanks for all your help and time.
    Regards,
    Latha

    Hi Latha,
    Please try to use thin and add port number.
    m_conn = DriverManager.getConnection("jdbc:oracle:thin:@" + hostURL + ":" + port + ":" + database, user, password);
    Hong
    null

  • Connecting Oracle by JDBC in Linux

    I'm using oracle8.1.7, redhat 7.2,Apache as webserver and tomcat
    as containers, all these work very well. but I have a problem
    connecting oracle with JDBC.
    I've installed the JDBC driver by setting the classpath
    in .bash_profile of oracle, but when I run the a jsp which try
    to connect the database, it return the exception error which
    tell me the suitable driver is not found! Can anyone tell me why?
    By the way, I'm using JDK1.3 and the JDBC driver is
    classes12.zip. Please help me out.

    Double Post
    http://forum.java.sun.com/thread.jspa?threadID=673989

  • Transaction on Oracle 9i data source connection times out before JTA transaction

    Hello,
    I have a MDB with a long-running transaction (3600 second timeout).
    In the MDB, I make a call to another EJB that has its transaction
    attribute set to NotSupported (I do this because I need
    non-transactional semantics in the called method).
    If the EJB call take more than about a minute to complete, then I get a
    datasource error when using the data source in the MDB after the return
    (see error at bottom). However, if the call completes quickly, then I do
    not get this error. It seems like the datasource connection somehow
    times out, but I don't see where I can change this timeout.
    pseudocode:
    // timeout set to 3600 seconds
    transactional MDB onMessage() {
    // receive connection from Oracle BEA driver
    // myEJB performLongOperation has transaction attribute
    // set to NotSupported
    String result = myEJB.performLongOperation();
    // use connection from Oracle BEA driver
    If the performLongOperation takes more than about a minute, then I get
    the following error when using the connection after the operation:
    Caused by: java.sql.SQLException: XA error: XAER_NOTA : The XID is not
    valid start() failed on resource 'Oracle IDENT Connection Pool':
    XAER_NOTA : The XID is not valid
    javax.transaction.xa.XAException: [BEA][Oracle JDBC Driver]Oracle XA
    Error Occurred. Native Error: 24756
    at
    weblogic.jdbcx.oracle.OracleImplXAResource.checkError(Unknown Source)
    at weblogic.jdbcx.oracle.OracleImplXAResource.start(Unknown Source)
    at weblogic.jdbcx.base.BaseXAResource.start(Unknown Source)
    at weblogic.jdbc.jta.DataSource.start(DataSource.java:617)
    at
    weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
    urceInfo.java:1075)
    at
    weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
    sourceInfo.java:1007)
    at
    weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
    ourceInfo.java:218)
    at
    weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
    rverTransactionImpl.java:419)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1287)
    at
    weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
    250)
    at
    weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:185)
    at
    weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.jav
    a:80)
    at
    weblogic.jdbc.wrapper.Connection.createStatement(Connection.java:297)

    Thanks for the reply.
    I don't have contract customer support access with BEA, and thus I can't
    download the patch. Is there any other workaround for this?
    Thanks
    Slava Imeshev wrote:
    Steven,
    Please check this:
    http://www.viewtier.com/newsgroups/thread.jspa?threadID=20&tstart=0
    Hope this helps.
    Regards,
    Slava Imeshev
    "Steven Ostrowski" <[email protected]> wrote in message news:40cf35cc@mktnews1...
    I have a MDB with a long-running transaction (3600 second timeout).
    In the MDB, I make a call to another EJB that has its transaction
    attribute set to NotSupported (I do this because I need
    non-transactional semantics in the called method).
    If the EJB call take more than about a minute to complete, then I get a
    datasource error when using the data source in the MDB after the return
    (see error at bottom). However, if the call completes quickly, then I do
    not get this error. It seems like the datasource connection somehow
    times out, but I don't see where I can change this timeout.
    pseudocode:
    // timeout set to 3600 seconds
    transactional MDB onMessage() {
    // receive connection from Oracle BEA driver
    // myEJB performLongOperation has transaction attribute
    // set to NotSupported
    String result = myEJB.performLongOperation();
    // use connection from Oracle BEA driver
    If the performLongOperation takes more than about a minute, then I get
    the following error when using the connection after the operation:
    Caused by: java.sql.SQLException: XA error: XAER_NOTA : The XID is not
    valid start() failed on resource 'Oracle IDENT Connection Pool':
    XAER_NOTA : The XID is not valid
    javax.transaction.xa.XAException: [BEA][Oracle JDBC Driver]Oracle XA
    Error Occurred. Native Error: 24756
    at
    weblogic.jdbcx.oracle.OracleImplXAResource.checkError(Unknown Source)
    at weblogic.jdbcx.oracle.OracleImplXAResource.start(Unknown Source)
    at weblogic.jdbcx.base.BaseXAResource.start(Unknown Source)
    at weblogic.jdbc.jta.DataSource.start(DataSource.java:617)
    at
    weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
    urceInfo.java:1075)
    at
    weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
    sourceInfo.java:1007)
    at
    weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
    ourceInfo.java:218)
    at
    weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
    rverTransactionImpl.java:419)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1287)
    at
    weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
    250)
    at
    weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAConnection.java:185)
    at
    weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.jav
    a:80)
    at
    weblogic.jdbc.wrapper.Connection.createStatement(Connection.java:297)

  • JDBC-ODBC connectivity problem

    hi ,i have a j2se 1.4.2 version installed on windows 2000 professional.i have j2me wireless toolkit 2.0,Oracle 8i(8.1.5),tomcat 4.0 running on system.I have tried to connect to the database in Oracle through JDBC-ODBC bridge but it becomes non-responsive.The same has been working well with Oracle 9i versions and also in Oracle 8i when ODBC driver is selected as Microsoft ODBC drivers for Oracle but not with Oracle drivers for Oracle.Can anybody tell me the compatibilities of JDBC-ODBC bridge versions,oracle and ODBC drivers? And can u tell me how to connect to oracle through a pure Java JDBC drivers on a standalone system?

    well,i think nobody has interest in my question.I have asked two questions.
    1)Can anybody tell me the compatibilities of JDBC-ODBC bridge versions,oracle and ODBC drivers?
    2)And can u tell me how to connect to oracle through a pure Java JDBC drivers (type 4 drivers) on a standalone system?
    But u advise me not to use JDBC-ODBC bridge without studying the other part.

  • Oracle 11.2 client connecting to Oracle 10.2 databases

    I have an application which currently uses 10.2.0.4 Oracle Client to connect to Oracle 10.2 databases using java (jdbc).
    Now I have to do setup on another linux server and looking into whether I can use 11.2 Oracle clinet avaiable on tcehnet.oracle.com to connect to
    10.2 databases. I will be using jdbc for connectivity.

    Maybe showing my ignorance here, but doesn't the application itself have to be written to use the jdbc thin driver?
    That would not be typical. A Java application will normally be modular as regards DB connections.
    1. The app itself will be written to take an instance of the 'Connection' interface
    http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html
    2. The actual 'Connection' instance will be created by a factory method or other application independent code at startup and then passed to the application code.
    Just like TNSNAMES.ORA contains the parameters for OCI connections an application will normally use a config file and/or command-line parameters for the JDBC connection parameters.
    Naturally, just like everything else, developers can always screw things up by hard coding values. Nothing you can do about that.
    See the 'Database URLs and Database Specifiers' section of the JDBC dev guide
    http://docs.oracle.com/cd/E11882_01/java.112/e16548/urls.htm#BEIJFHHB
    Database URLs are strings. The complete URL syntax is:
    jdbc:oracle:driver_type:[username/password]@database_specifier 
    Note:
      The brackets indicate that the username/password pair is optional.
      kprb, the internal server-side driver, uses an implicit connection. Database URLs for the server-side driver end after the driver_type.
    The first part of the URL specifies which JDBC driver is to be used. The supported driver_type values are thin, oci, and kprb.
    The remainder of the URL contains an optional user name and password separated by a slash, an @, and the
    database specifier, which uniquely identifies the database to which the application is connected. Some database specifiers are valid only for the JDBC Thin driver, some only for the JDBC OCI driver, and some for both.
    Then there are examples of each driver type in 'Table 8-3 Supported Database Specifiers'
    Thin: "jdbc:oracle:thin:scott/tiger@//myhost:1521/myservicename"
    See that table 8-3 for the different OCI options.

Maybe you are looking for