Thin Driver throws SQLException instead of BatchUpdateExeption!

Hi,
I am using classes12.zip.
While executing a batch update, one of the values in the prepared statement
is invalid, so executeUpdate() fails. But, instead of throwing a
java.sql.BatchUpdateException, the driver throws a java.sql.SQLException.
This is a big problem for me since I handle BatchUpdateException to
find out the erroneous value and so on.
Please let me know if anybody else faced this problem, and what the solution is.
TIA,
Prasad

At the time our issue was resolved, the bug was not published. And, I was told, there was no information in metalink about the isue. I am not sure whether they published some thing in the last few weeks.
This is what resolved our issue.
Step 1: alter system set java_jit_enabled=FALSE;
Step 2: Try your test case. If it is the same issue as ours, your test case will be successful. If it succeeds, Go to step 3. If it does not succeed, it is a different issue.
Step 3: alter system set java_jit_enabled=TRUE;
Step 4: Run your test case. If it is the same issue, it is expected to fail. Go to Step 5 in case of failure.
Step 5: Delete all rows from table java$mc$
Step 6: Restart the database
Step 7: Run your test case. It is expected to be successful.

Similar Messages

  • Oracle server side jdbc thin driver throws ORA-01017

    We upgraded our database to 11.2.0.1 from 9.2.0.6.
    When we try to connect to an external database from Oracle JVM using server side jdbc thin driver, it throws invalid user id/password error.
    The below test code simulates the issue and is not working on the upgraded instance. The same code is working in fine in other 11.2.0.1 instances. It worked fine before upgrade. In all cases, we are connecting to the same target database instance which is also in 11.2.0.1. It fails only on this database.
    SEC_CASE_SENSITIVE_LOGON is set to false.
    Any inputs will be highly appreciated.
    Code:_
    create or replace and compile java source named TestConn as
    import java.sql.SQLException;
    import oracle.jdbc.OracleDriver;
    import oracle.jdbc.OracleConnection;
    import java.sql.DriverManager;
    public class TestConn {
         public  static String runTest() {
          String msg = "Start";
          OracleConnection tempOC = null;
          try {
          String pUrl = "jdbc:oracle:thin:@dev:1521:dev";
          String pUser = "tst_user";
          String pPwd = "dummy";
          DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
          tempOC = (OracleConnection)DriverManager.getConnection(pUrl, pUser, pPwd);
    msg = "Success";
    } catch (SQLException sqle) {
          System.out.println(sqle.toString());
          sqle.printStackTrace();
          msg = "Failure";
            return msg;
    CREATE OR REPLACE FUNCTION test_conn RETURN VARCHAR2
    AS LANGUAGE JAVA
    NAME 'TestConn.runTest() return java.lang.String';
    set serverout on
    declare
    c varchar2(4000);
    begin
    dbms_java.set_output(5000);
    c:=test_conn();
    dbms_output.put_line(c);
    end;
    / Error Message_
    java.sql.SQLException: ORA-01017: invalid username/password; logon denied
    java.sql.SQLException: ORA-01017: invalid username/password; logon denied
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388)
           at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381)
           at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564)
           at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431)
           at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
           at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
           at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
           at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java)
           at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)
           at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java)
           at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
           at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
           at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
           at java.sql.DriverManager.getConnection(DriverManager.java)
           at java.sql.DriverManager.getConnection(DriverManager.java)
           at TestConn.runTest(TESTCONN:22) Edited by: sskumar on Mar 6, 2011 1:12 PM

    At the time our issue was resolved, the bug was not published. And, I was told, there was no information in metalink about the isue. I am not sure whether they published some thing in the last few weeks.
    This is what resolved our issue.
    Step 1: alter system set java_jit_enabled=FALSE;
    Step 2: Try your test case. If it is the same issue as ours, your test case will be successful. If it succeeds, Go to step 3. If it does not succeed, it is a different issue.
    Step 3: alter system set java_jit_enabled=TRUE;
    Step 4: Run your test case. If it is the same issue, it is expected to fail. Go to Step 5 in case of failure.
    Step 5: Delete all rows from table java$mc$
    Step 6: Restart the database
    Step 7: Run your test case. It is expected to be successful.

  • JDBC thin driver 8.0.5 giving SQLException: No more data to read from socket

    H/W : sun4u sparc SUNW,Ultra-Enterprise
    OS : SunOS 5.6 Generic_105181-16
    JDBC driver : 8.0.5.0.0 (Production Release)
    Oracle Server : 8.0.5
    I am getting the following error "SOMETIMES". I am using a connection pool to connect to the server using the thin driver. Can anyone tell me why is this happening and how can I fix it.
    Thanks,
    -Ramesh
    SQL Statement: SELECT * FROM blah blah ...
    SQLState: null
    Message: No more data to read from socket
    Vendor: 0
    JDBC close connection failed.
    java.sql.SQLException: No more data to read from socket
    URL=jdbc racle:thin:@<host>:1521:<sid> user=<user_name>
    null

    Hello,
    When I change PLSExtProc to XE, I get a different exception:
    java.sql.SQLException: ORA-00942: table or view does not exist
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:911)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1120)
         at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:962)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1242)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3446)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3491)
         at oracle.Main.main(Main.java:30)
    SQLException: ORA-00942: table or view does not exist
    thanks,
    - Breno

  • Petstore throws populateServlet error with Oracle thin driver

    When i point connection pool to Oracle database, i get the following error. The
    data is populated in the database, looks like when petstore is enumerating db
    tables and make sure all tables exist, this error is happening. Some how, database
    metadata coming as NULL. Has anybody tried petstore with Oracle JDBC driver?
    thanks,
    PopulateServlet Error:
    java.lang.NullPointerException java.lang.NullPointerException at com.sun.j2ee.blueprints.tools.populate.web.PopulateServlet.checkTables(PopulateServlet.java:276)
    at com.sun.j2ee.blueprints.tools.populate.web.PopulateServlet.doGet(PopulateServlet.java:127)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    I believe that you do not have weblogicaux.jar in your classpath.
    -Selvan
    Laurie Cohen wrote:
    Im using Solaris 2.7 with WLS 5.1.0 and Commerce Server 2.0.1 with
    current service packs on both. JDK 1.2.1_04 and the Oracle thin driver
    (classes111.zip which I am told is the only one supported in this
    configuration). Has anyone seen this problem? Is it that the driver is
    using 1.1 and I only have 1.2 installed?
    devapp01% java -classpath
    /usr/local/weblogic/classes:/usr/local/weblogic/license utils.t3dbping
    t3://localhost:7601 username password "" oracle.jdbc.driver.OracleDriver
    jdbc:oracle:thin:@10.200.201.110:1521:q01c
    Connecting to WebLogic with the WebLogic JDBC Driver
    Exception in thread "main" java.lang.NoClassDefFoundError:
    com/sun/java/util/collections/ArrayList
    at weblogic.kernel.Kernel.declareProperties(Kernel.java:253)
    at weblogic.kernel.Kernel.ensureInitialized(Kernel.java:107)
    at weblogic.common.T3Client.<init>(T3Client.java:218)
    at weblogic.common.T3Client.<init>(T3Client.java:269)
    at weblogic.common.T3Client.<init>(T3Client.java:323)
    at weblogic.jdbcbase.t3.Driver.connect(Driver.java:121)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:106)
    at utils.t3dbping.main(t3dbping.java:115)
    Thanks,
    Laurie

  • Bug in thin driver? - getTableName

    Using oracle.jdbc.driver.OracleDriver (class dated 5/4/00 12:01 AM) in Classes12_01.zip (dated 9/25/00 4:53 PM). The ResultSetMetaData.getTableName() method returns an empty String (is not null), although column names and values come across fine.
    Any help is greatly appreciated.
    Michael

    I tried this under both the oci8 and thin and had successful results. Your cut/paste shows no column identifier as per the javadocs:
    ...from JD:
    public String getTableName(int column) throws SQLException
    ...example from JD:
    ResultSet rs = stmt.executeQuery("SELECT TABLE_NAME FROM ALL_TABLES");
    ResultSetMetaData rsmd = rs.getMetaData();
    String tableName = rs.getTableName(1);
    null

  • Memory leak in weblogic 6.0 sp2 oracle 8.1.7 thin driver

    Hi,
         I have a simple client that opens a database connection, selects from
    a table containing five rows of data (with four columns in each row)
    and then closes all connections. On running this in a loop, I get the
    following error after some time:
    <Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Adapter>
    <OutOfMemoryError in
    Adapter
    java.lang.OutOfMemoryError
    <<no stack trace available>>
    >
    <Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Kernel> <ExecuteRequest
    failed
    java.lang.OutOfMemoryError
    I am running with a heap size of 64 Mb. The java command that runs
    the client is:
    java -ms64m -mx64m -cp .:/opt/bea/wlserver6.0/lib/weblogic.jar
    -Djava.naming.f
    actory.initial=weblogic.jndi.WLInitialContextFactory
    -Djava.naming.provider.url=
    t3://garlic:7001 -verbose:gc Test
    The following is the client code that opens the db connection and does
    the select:
    import java.util.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.sql.*;
    public class Test {
    private static final String strQuery = "SELECT * from tblPromotion";
    public static void main(String argv[])
    throws Exception
    String ctxFactory     = System.getProperty
    ("java.naming.factory.initial");
    String providerUrl     = System.getProperty
    ("java.naming.provider.url");
    Properties jndiEnv          = System.getProperties ();
    System.out.println ("ctxFactory : " + ctxFactory);
    System.out.println ("ProviderURL : " + providerUrl);
    Context ctx     = new InitialContext (jndiEnv);
    for (int i=0; i <1000000; i++)
    System.out.println("Running query for the "+i+" time");
    Connection con = null;
    Statement stmnt = null;
    ResultSet rs     = null;
    try
    DataSource ds     = (DataSource) ctx.lookup
    (System.getProperty("eaMDataStore", "jdbc/eaMarket"));
    con = ds.getConnection ();
    stmnt = con.createStatement();
    rs = stmnt.executeQuery(strQuery);
    while (rs.next ())
    //System.out.print(".");
    //System.out.println(".");
    ds = null;
    catch (java.sql.SQLException sqle)
    System.out.println("SQL Exception : "+sqle.getMessage());
    finally
    try {
    rs.close ();
    rs = null;
    //System.out.println("closed result set");
    } catch (Exception e) {
    System.out.println("Exception closing result set");
    try {
    stmnt.close ();
    stmnt = null;
    //System.out.println("closed statement");
    } catch (Exception e) {
    System.out.println("Exception closing result set");
    try {
    con.close();
    con = null;
    //System.out.println("closed connection");
    } catch (Exception e) {
    System.out.println("Exception closing connection");
    I am using the Oracle 8.1.7 thin driver. Please let me know if this
    memory leak is a known issue or if its something I am doing.
    thanks,
    rudy

    Repost in JDBC section ... very serious issue but it may be due to Oracle or
    to WL ... does it happen if you test inside WL itself?
    How many iterations does it take to blow? How long? Does changing to a
    different driver (maybe Cloudscape) have the same result?
    Peace,
    Cameron Purdy
    Tangosol Inc.
    << Tangosol Server: How Weblogic applications are customized >>
    << Download now from http://www.tangosol.com/download.jsp >>
    "R.C." <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I have a simple client that opens a database connection, selects from
    a table containing five rows of data (with four columns in each row)
    and then closes all connections. On running this in a loop, I get the
    following error after some time:
    <Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Adapter>
    <OutOfMemoryError in
    Adapter
    java.lang.OutOfMemoryError
    <<no stack trace available>>
    >
    <Nov 28, 2001 5:57:40 PM GMT+06:00> <Error> <Kernel> <ExecuteRequest
    failed
    java.lang.OutOfMemoryError
    I am running with a heap size of 64 Mb. The java command that runs
    the client is:
    java -ms64m -mx64m -cp .:/opt/bea/wlserver6.0/lib/weblogic.jar
    -Djava.naming.f
    actory.initial=weblogic.jndi.WLInitialContextFactory
    -Djava.naming.provider.url=
    t3://garlic:7001 -verbose:gc Test
    The following is the client code that opens the db connection and does
    the select:
    import java.util.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.sql.*;
    public class Test {
    private static final String strQuery = "SELECT * from tblPromotion";
    public static void main(String argv[])
    throws Exception
    String ctxFactory = System.getProperty
    ("java.naming.factory.initial");
    String providerUrl = System.getProperty
    ("java.naming.provider.url");
    Properties jndiEnv = System.getProperties ();
    System.out.println ("ctxFactory : " + ctxFactory);
    System.out.println ("ProviderURL : " + providerUrl);
    Context ctx = new InitialContext (jndiEnv);
    for (int i=0; i <1000000; i++)
    System.out.println("Running query for the "+i+" time");
    Connection con = null;
    Statement stmnt = null;
    ResultSet rs = null;
    try
    DataSource ds = (DataSource) ctx.lookup
    (System.getProperty("eaMDataStore", "jdbc/eaMarket"));
    con = ds.getConnection ();
    stmnt = con.createStatement();
    rs = stmnt.executeQuery(strQuery);
    while (rs.next ())
    //System.out.print(".");
    //System.out.println(".");
    ds = null;
    catch (java.sql.SQLException sqle)
    System.out.println("SQL Exception : "+sqle.getMessage());
    finally
    try {
    rs.close ();
    rs = null;
    //System.out.println("closed result set");
    } catch (Exception e) {
    System.out.println("Exception closing result set");
    try {
    stmnt.close ();
    stmnt = null;
    //System.out.println("closed statement");
    } catch (Exception e) {
    System.out.println("Exception closing result set");
    try {
    con.close();
    con = null;
    //System.out.println("closed connection");
    } catch (Exception e) {
    System.out.println("Exception closing connection");
    I am using the Oracle 8.1.7 thin driver. Please let me know if this
    memory leak is a known issue or if its something I am doing.
    thanks,
    rudy

  • Thin driver connection in oracle8i(8.1.5) on Linux with JDK1.2.2

    JDBC Development team quote:
    You can download the JDK 1.2 version of the 8.1.6 Thin driver from this site. It is 100% Pure Java and will run on Linux.
    As you replied, I downloaded 8.1.6 Thin driver(classes12.zip) and nls_charset12.zip. Then, as instructed in readme file of 8.1.6, I modified CLASSPATH and add LD_LIBRARY_PATH.
    I wrote a test program, and it compiled without errors. But when I excuted it, I got the error message below:
    java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNU
    M=135286784)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
    Is there any other installation procedures I missed?
    Below is the test program I used:
    import java.sql.*;
    import oracle.jdbc.driver.*;
    public class Test
    public static void main (String args [])throws SQLException
    //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    catch(ClassNotFoundException e){
    System.out.println("Cannot load the Driver");
    Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@host:port:sid","id", "password");
    Statement stmt = conn.createStatement ();
    ResultSet rset = stmt.executeQuery ("select sysdate from dual");
    while (rset.next ())
    System.out.println (rset.getString (1));
    I'd appreciate if you give me some insight.
    null

    It seems like the database listener is not setup properly. Please double check the listener is up and it's listening to the port you specified.
    Thanks.

  • Bug in Oracle JDBC thin driver (parameter order)

    [ I'd preferably send this to some Oracle support email but I
    can't find any on both www.oracle.com and www.technet.com. ]
    The following program illustrates bug I found in JDBC Oracle thin
    driver.
    * Synopsis:
    The parameters of prepared statement (I tested SELECT's and
    UPDATE's) are bound in the reverse order.
    If one do:
    PreparedStatement p = connection.prepareStatement(
    "SELECT field FROM table WHERE first = ? and second = ?");
    and then bind parameter 1 to "a" and parameter to "b":
    p.setString(1, "a");
    p.setString(2, "b");
    then executing p yields the same results as executing
    SELECT field FROM table WHERE first = "b" and second = "a"
    although it should be equivalent to
    SELECT field FROM table WHERE first = "a" and second = "b"
    The bug is present only in "thin" Oracle JDBC driver. Changing
    driver to "oci8" solves the problem.
    * Version and platform info:
    I detected the bug using Oracle 8.0.5 server for Linux.
    According to $ORACLE_HOME/jdbc/README.doc that is
    Oracle JDBC Drivers release 8.0.5.0.0 (Production Release)
    * The program below:
    The program below illustrates the bug by creating dummy two
    column table, inserting the row into it and then selecting
    the contents using prepared statement. Those operations
    are performed on both good (oci8) and bad (thin) connections,
    the results can be compared.
    You may need to change SID, listener port and account data
    in getConnecton calls.
    Sample program output:
    $ javac ShowBug.java; java ShowBug
    Output for both connections should be the same
    --------------- thin Driver ---------------
    [ Non parametrized query: ]
    aaa
    [ The same - parametrized (should give one row): ]
    [ The same - with buggy reversed order (should give no answers):
    aaa
    --------------- oci8 driver ---------------
    [ Non parametrized query: ]
    aaa
    [ The same - parametrized (should give one row): ]
    aaa
    [ The same - with buggy reversed order (should give no answers):
    --------------- The end ---------------
    * The program itself
    import java.sql.*;
    class ShowBug
    public static void main (String args [])
    throws SQLException
    // Load the Oracle JDBC driver
    DriverManager.registerDriver(new
    oracle.jdbc.driver.OracleDriver());
    System.out.println("Output for both connections should be the
    same");
    Connection buggyConnection
    = DriverManager.getConnection
    ("jdbc:oracle:thin:@localhost:1521:ORACLE",
    "scott", "tiger");
    process("thin Driver", buggyConnection);
    Connection goodConnection
    = DriverManager.getConnection ("jdbc:oracle:oci8:",
    "scott", "tiger");
    process("oci8 driver", goodConnection);
    System.out.println("--------------- The end ---------------");
    public static void process(String title, Connection conn)
    throws SQLException
    System.out.println("--------------- " + title + "
    Statement stmt = conn.createStatement ();
    stmt.execute(
    "CREATE TABLE bug (id VARCHAR(10), val VARCHAR(10))");
    stmt.executeUpdate(
    "INSERT INTO bug VALUES('aaa', 'bbb')");
    System.out.println("[ Non parametrized query: ]");
    ResultSet rset = stmt.executeQuery(
    "select id from bug where id = 'aaa' and val = 'bbb'");
    while (rset.next ())
    System.out.println (rset.getString (1));
    System.out.println("[ The same - parametrized (should give one
    row): ]");
    PreparedStatement prep = conn.prepareStatement(
    "select id from bug where id = ? and val = ?");
    prep.setString(1, "aaa");
    prep.setString(2, "bbb");
    rset = prep.executeQuery();
    while (rset.next ())
    System.out.println (rset.getString (1));
    System.out.println("[ The same - with buggy reversed order
    (should give no answers): ]");
    prep = conn.prepareStatement(
    "select id from bug where id = ? and val = ?");
    prep.setString(1, "bbb");
    prep.setString(2, "aaa");
    rset = prep.executeQuery();
    while (rset.next ())
    System.out.println (rset.getString (1));
    stmt.execute("DROP TABLE bug");
    null

    Horea
    In the ejb-jar.xml, in the method a cursor is closed, set <trans-attribute>
    to "Never".
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name></ejb-name>
    <method-name></method-name>
    </method>
    <trans-attribute>Never</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    Deepak
    Horea Raducan wrote:
    Is there a known bug in Oracle JDBC thin driver version 8.1.6 that would
    prevent it from closing the open cursors ?
    Thank you,
    Horea

  • Jdbc oracle jdbc-thin driver subname

    I am working on Windows 2000 environment, using oracle8i 8.1.7 JDBC-Thin driver for use with JDK 1.2.x. The oralce8i 8.1.7 database is on another linux box. I can access the linux box through its ip address, but not by its hostname since it's not accessiable by the dns server. In my code, in the JDBCUrl, I used ip address instead of the hostname, e.g. "jdbc:oracle:thin:@10.0.113.108:1521:ora1". But I got the error like: "java.sql.SQLException: Io exception: The Network Adapter could not establish the connection". If I add a entry in my working machine's hosts file to map the hostname, I can fix the problem. But I don't know if this is the solution, or there is other better solutions.
    Thanks
    null

    Using a hosts file entry is a common solution for problem where the dns lookup does not contain an entry for a RDBMS server platform.
    The real solution is to resolve this issue :
    "where the dns lookup does not contain an entry for a RDBMS server platform."

  • Oracle JDBC Thin Driver

    I am using CLOBS with the Oracle thin driver and am experiencing horrible performance. We need datavalues more than a VARCHAR2 and have used CLOB but the method Oracle uses to get the data in and out is super slow.
    MS SQL Server JDBC with text is awesome and fast. But Oracle is slow and very cumbersome.
    Help

    We are using 9.0.2.
    So what you are saying is although the column is CLOB
    in Oracle 10 g we can use a normal result set
    rset.getString( 1 ) no special oracle stuff just the
    e Oracle thin driver for 10g?
    Also this will retrieve a String greater than 4000
    bytes?Exactly. Not only you can retieve a clob as string, you can also insert clob
    as a string too. Here is the code I referred in last post in case you do not
    have access to oracle ten network:
    * @author Savitha
    * @version 1.0
    * Development Environment : Oracle JDeveloper 10g
    * Name of the Application : ClobManipulationIn10g.java
    * Creation/Modification History :
    * Savitha 17-Mar-2004 Created.
    package oracle.otnsamples.jdbc;
    // Java SQL classes
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    // Oracle JDBC driver class
    import oracle.jdbc.OracleDriver;
    // Java IO classes
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    //Java Util classes
    import java.util.Properties;
    * This class demonstrates the Oracle JDBC 10g enhanced features for inserting
    * and retrieving CLOB data from the database. Using the new features, large
    * data of more than 32765 bytes can be inserted into the database using the
    * existing PreparedStatement.setString() and PreparedStatement.getString()
    * methods.
    public class ClobManipulationIn10g {
    /* Database Connection object */
    private Connection conn = null;
    /* Variables to hold database details */
    private String url = null;
    private String user = null;
    private String password = null;
    // Create a property object to hold the username, password and
    // the new property SetBigStringTryClob.
    private Properties props = new Properties();
    /* String to hold file name */
    private String fileName = null;
    * Default Constructor to instantiate and get a handle to class methods
    * and variables.
    public ClobManipulationIn10g(String fileName) {
    this.fileName = fileName;
    * Main runnable class.
    public static void main(String[] args) throws SQLException {
    // Instantiate the main class.
    ClobManipulationIn10g clobManipulationIn10g =
    new ClobManipulationIn10g(args[0]);
    // Load the Oracle JDBC driver class.
    DriverManager.registerDriver(new OracleDriver());
    // Load the database details into the variables.
    String dbUrl = "jdbc:oracle:thin:@<database host machine>:<port>:<SID>";
    clobManipulationIn10g.url = dbUrl;
    // Replace the username where the table 'clob_tab' was created.
    clobManipulationIn10g.user = "scott";
    // Replace the password of the username.
    clobManipulationIn10g.password = "tiger";
    // Populate the property object to hold the username, password and
    // the new property 'SetBigStringTryClob' which is set to true. Setting
    // this property allows inserting of large data using the existing
    // setString() method, to a CLOB column in the database.
    clobManipulationIn10g.props.put("user", clobManipulationIn10g.user );
    clobManipulationIn10g.props.put("password", clobManipulationIn10g.password);
    clobManipulationIn10g.props.put("SetBigStringTryClob", "true");
    // Check if the table 'CLOB_TAB' is present in the database.
    clobManipulationIn10g.checkTables();
    // Call the methods to insert and select CLOB from the database.
    clobManipulationIn10g.insertClob();
    clobManipulationIn10g.selectClob();
    * This method will insert the data into a CLOB column in the database.
    * Oracle JDBC 10g has enhanced the existing PreparedStatement.setString()
    * method for setting the data more than 32765 bytes. So, using setString(),
    * it is now easy to insert CLOB data into the database directly.
    private void insertClob() throws SQLException {
    // Create a PreparedStatement object.
    PreparedStatement pstmt = null;
    try {
    // Create the database connection, if it is closed.
    if ((conn==null)||conn.isClosed()){
    // Connect to the database.
    conn = DriverManager.getConnection( this.url, this.props );
    // Create SQL query to insert data into the CLOB column in the database.
    String sql = "INSERT INTO clob_tab VALUES(?)";
    // Read a big file(larger than 32765 bytes)
    String str = this.readFile();
    // Create the OraclePreparedStatement object
    pstmt = conn.prepareStatement(sql);
    // Use the same setString() method which is enhanced to insert
    // the CLOB data. The string data is automatically transformed into a
    // clob and inserted into the database column. Make sure that the
    // Connection property - 'SetBigStringTryClob' is set to true for
    // the insert to happen.
    pstmt.setString(1,str);
    // Execute the PreparedStatement
    pstmt.executeUpdate();
    } catch (SQLException sqlex) {
    // Catch Exceptions and display messages accordingly.
    System.out.println("SQLException while connecting and inserting into " +
    "the database table: " + sqlex.toString());
    } catch (Exception ex) {
    System.out.println("Exception while connecting and inserting into the" +
    " database table: " + ex.toString());
    } finally {
    // Close the Statement and the connection objects.
    if (pstmt!=null) pstmt.close();
    if (conn!=null) conn.close();
    * This method reads the CLOB data from the database by using getString()
    * method.
    private void selectClob() throws SQLException {
    // Create a PreparedStatement object
    PreparedStatement pstmt = null;
    // Create a ResultSet to hold the records retrieved.
    ResultSet rset = null;
    try {
    // Create the database connection, if it is closed.
    if ((conn==null)||conn.isClosed()){
    // Connect to the database.
    conn = DriverManager.getConnection( this.url, this.props );
    // Create SQL query statement to retrieve records having CLOB data from
    // the database.
    String sqlCall = "SELECT clob_col FROM clob_tab";
    pstmt= conn.prepareStatement(sqlCall);
    // Execute the PrepareStatement
    rset = pstmt.executeQuery();
    String clobVal = null;
    // Get the CLOB value from the resultset
    while (rset.next()) {
    clobVal = rset.getString(1);
    System.out.println("CLOB length: "+clobVal.length());
    } catch (SQLException sqlex) {
    // Catch Exceptions and display messages accordingly.
    System.out.println("SQLException while connecting and querying the " +
    "database table: " + sqlex.toString());
    } catch (Exception ex) {
    System.out.println("Exception while connecting and querying the " +
    "database table: " + ex.toString());
    } finally {
    // Close the resultset, statement and the connection objects.
    if (rset !=null) rset.close();
    if (pstmt!=null) pstmt.close();
    if (conn!=null) conn.close();
    * Method to check if the table ('CLOB_TAB') exists in the database; if not
    * then it is created.
    * Table Name: CLOB_TAB
    * Column Name Type
    * col_col CLOB
    private void checkTables() {
    Statement stmt = null;
    ResultSet rset = null;
    try {
    // Create the database connection, if it is closed.
    if ((conn==null)||conn.isClosed()){
    // Connect to the database.
    conn = DriverManager.getConnection( this.url, this.props );
    // Create Statement object
    stmt = conn.createStatement();
    // Check if the table is present
    rset = stmt.executeQuery(" SELECT table_name FROM user_tables "+
    " WHERE table_name = 'CLOB_TAB' ");
    // If the table is not present, then create the table.
    if (!rset.next()) {
    // Table does not exist, create it
    stmt.executeUpdate(" CREATE TABLE clob_tab(clob_col CLOB)");
    } catch (SQLException sqlEx) {
    System.out.println("Could not create table clob_tab : "
    +sqlEx.toString());
    } finally {
    try {
    if( rset != null ) rset.close();
    if( stmt != null ) stmt.close();
    if (conn!=null) conn.close();
    } catch(SQLException ex) {
    System.out.println("Could not close objects in checkTables method : "
    +ex.toString());
    * This method reads the specified text file and, returns the content
    * as a string.
    private String readFile()
    throws FileNotFoundException, IOException{
    // Read the file whose content has to be passed as String
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    String nextLine = "";
    StringBuffer sb = new StringBuffer();
    while ((nextLine = br.readLine()) != null) {
    sb.append(nextLine);
    // Convert the content into to a string
    String clobData = sb.toString();
    // Return the data.
    return clobData;
    }

  • Problem while Connecting with oracle thin driver

    I have been trying for the past two days for connecting oracle 8.1.1.6 using thin driver. I set the classpath also. It throws me the following exception.
    Exception in thread "main" java.sql.SQLException: Io exception: The Network Adap
    ter could not establish the connection
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:260)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
    va:365)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
    at java.sql.DriverManager.getConnection(DriverManager.java:517)
    at java.sql.DriverManager.getConnection(DriverManager.java:177)
    at Employee.main(Employee.java:23)
    I am trying to acheive the connection using the following piece of code
    Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@THIRU:1521:ORCL",
                        "scott", "tiger");
    The problem lies in that piece of code only,
    In the TNSNAMES.ora the entries are as follows.
    THIRU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Thiru)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = thiru)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    How to solve this one. Can anybody tell me how to provide the proper url.
    thanks in advance

    You were very close.
    "Thiru" as opposed to "THIRU" should be the name of the machine running the database, but that would imply that the DNS lookups are case sensitive, and we know that's not the case.
    My guess, because the network adapter itself is reporting an error, is that "Thiru" evaluates to an IP address that isn't correct, that is, it's trying to make a connection to a specific address and getting nothing back in return.
    Anyway, I think your program(s) are just fine, and your network is misconfigured. Incidently, it is always a good idea in cases like this to use the full name of the machine, for example...
    ...getConnection( "jdbc:oracle:thin:@thiru.maran1977.com:1521:ORCL"...
    and in the database configuration itself...
    (ADDRESS = (PROTOCOL = TCP)(HOST = thiru.maran1977.com)(PORT = 1521))
    You may also use the IP address if you wish.

  • Using Oracle thin driver with Weblogic 6.1

    hi all,
    i am trying to create a ConnectionPool using WLS6.1 and Oracle 8.0.5.
    Since i cannot use the weblogic driver (due to the old version of oracle that
    i have)
    i am trying to use instead the oracle thin driver.
    i configured my pool as follows:
    URL jdbc:oracle:[email protected]:1521:ORC1
    Driver oracle.jdbc.Driver.OracleDriver
    Propeties user=SCOTT
    when i try to assing the created pool to a server (using the 'Target' link),
    i always got this exception
    weblogic.management.DeploymentException: Error creating connection pool - with
    n
    ested exception:
    [weblogic.common.ResourceException: Cannot load driver class: oracle.jdbc.Driver
    .OracleDriver]
    at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:110)
    at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
    at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
    at java.lang.reflect.Method.invoke(Native Method)
    at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
    at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    .java:592)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
    at $Proxy7.addDeployment(Unknown Source)
    at weblogic.management.internal.DynamicMBeanImpl.updateDeployments(Dynam
    icMBeanImpl.java:1448)
    at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:858)
    at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:810)
    at weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(Conf
    igurationMBeanImpl.java:288)
    at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1356)
    at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1331)
    at weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:
    303)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
    at $Proxy75.setTargets(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at weblogic.management.console.info.FilteredMBeanAttribute.doSet(Filtere
    dMBeanAttribute.java:89)
    at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(D
    oEditMBeanAction.java:116)
    at weblogic.management.console.actions.internal.ActionServlet.doAction(A
    ctionServlet.java:167)
    at weblogic.management.console.actions.internal.ActionServlet.doPost(Act
    ionServlet.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool - with
    nested exception:
    [weblogic.common.ResourceException: Cannot load driver class: oracle.jdbc.Driver
    .OracleDriver]]
    at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:494)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:44>
    However, i set the CLASSPATH & PATH of my startWebLogic.cmd as follows:
    set PATH=c:\orant\bin;d:\bea\wlserver6.1\bin\oci817_8;.\bin;%PATH%
    set CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;.\samples\eval\cloudscape\lib\cloudscape.jar;.\config\examples\serverclasses;c:\orant\jdbc\lib\classes111.zip
    AND, i have written a small program that uses JDBC (without weblogic) to query
    a table
    on the Oracle (using the pool's URL in the properties for getting the Connection
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORC1", "scott",
    "tiger");
    and that program works fine.
    Can anyone tell me what is wrong?? it seems that everything is in order (with
    respect to CLASSPATH, PATH etc..)
    hope someone can solve my problem
    thanx and regards
    marco

    your url should be
    jdbc:oracle:thin:@127.0.0.1:1521:ORC1
    notice the ':' before the '@'.
    sree
    "Marco" <[email protected]> wrote in message
    news:[email protected]...
    Hi Sree,
    You have to place the classes11.zip file in the beginning of the classpath.i did it. my CLASSPATH is now
    CLASSPATH=c:\orant\jdbc\lib\classes111.zip;.;.\lib\weblogic_sp.jar;.\lib\web
    logic.jar;.\samples\eval\cloudscape\lib\cloudscape.jar;.\config\examples\ser
    verclasses
    But now, when i assign the target, the exception is:
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating
    connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool -
    with
    nested exception:
    [weblogic.common.ResourceException: weblogic.common.ResourceException:
    Could not create pool connection. The DBMS driver exception was:
    java.sql.SQLException: Sub Protocol must be specified in connection URL
            at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:352)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:102)
            at
    weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(Con
    nectionEnvFactory.java:192)
            at
    weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(Con
    nectionEnvFactory.java:134)
            at
    weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllo
    cator.java:698)
            at
    weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.j
    ava:282)
            at
    weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.j
    ava:629)
            at
    weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:107)
            at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
            at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
            at java.lang.reflect.Method.invoke(Native Method)
            at
    weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
            at
    weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    java:592)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
            at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
            at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
            at $Proxy8.addDeployment(Unknown Source)
            at weblogic.management.internal.DynamicMB>
    what is SubProtocol???
    my ConnectionPool is configured as follows:
    Name:     MyJDBC Connection Pool
    URL :     jdbc:oracle:[email protected]:1521:ORC1
    Driver:   oracle.jdbc.driver.OracleDriver
    Properties: user=SCOTT
    Password  : tiger
    can u help me???
    thanx in advance and regards
       marco
    >
    >
    at
    weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:110)
    at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
    at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
    at java.lang.reflect.Method.invoke(Native Method)
    at
    weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
    at
    weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    java:592)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
    at $Proxy7.addDeployment(Unknown Source)
    at
    weblogic.management.internal.DynamicMBeanImpl.updateDeployments(Dynam
    icMBeanImpl.java:1448)
    at
    weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:858)
    at
    weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:810)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(Conf
    igurationMBeanImpl.java:288)
    at
    com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1356)
    at
    com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1331)
    at
    weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:
    303)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
    at $Proxy75.setTargets(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at
    weblogic.management.console.info.FilteredMBeanAttribute.doSet(Filtere
    dMBeanAttribute.java:89)
    at
    weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(D
    oEditMBeanAction.java:116)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(A
    ctionServlet.java:167)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(Act
    ionServlet.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating
    connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool
    with
    nested exception:
    [weblogic.common.ResourceException: Cannot load driver class:
    oracle.jdbc.Driver
    OracleDriver]]
    at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:494)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:44>
    However, i set the CLASSPATH & PATH of my startWebLogic.cmd as follows:
    set PATH=c:\orant\bin;d:\bea\wlserver6.1\bin\oci817_8;.\bin;%PATH%
    set
    CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;.\samples\eval\cloudsc
    a
    pe\lib\cloudscape.jar;.\config\examples\serverclasses;c:\orant\jdbc\lib\clas
    ses111.zip
    AND, i have written a small program that uses JDBC (without weblogic)
    to
    query
    a table
    on the Oracle (using the pool's URL in the properties for getting the
    Connection
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORC1",
    "scott",
    "tiger");
    and that program works fine.
    Can anyone tell me what is wrong?? it seems that everything is in order
    (with
    respect to CLASSPATH, PATH etc..)
    hope someone can solve my problem
    thanx and regards
    marco

  • Error when changing Oracle thin driver to Bea's Oracle driver

    Hi All !
         I was using this code with WL9.2 and Oracle 10 until recently with an Oracle thin driver
         URL: jdbc:oracle:thin:@[x.x.x.x]:1521:[SID]
         Driver Class: oracle.jdbc.xa.client.OracleXADataSource
         Now this was changed to
         URL: jdbc:bea:oracle://[x.x.x.x]:1521
         Class Driver Name: weblogic.jdbcx.oracle.OracleDataSource
         (Bea's oracle driver)
         but the code is not ok.
         The error is Caused by: java.lang.ClassCastException: weblogic.jdbc.wrapper.CallableStatement_weblogic_jdbcx_base_BaseCallableStatementWrapper
         at      com.esi.packages.dataaccess.pagination.ResolvePackageCriteriaPageProvider.getRPCSQLOfPackage(ResolvePackageCriteriaPageProvider.java:1208
         (this is the line where the cast of the result connection.prepareCall() is happenning).
         I tried different CallableStatement objects, from Bea but no success. Any idea/working example about this?
         The code follows:
         org.hibernate.Session session = this.getSession();
         String sqlCode = null;
         OracleThinClob sqlClobCode = null;
         StringBuffer sb = new StringBuffer();
         java.sql.Connection connection = null;
    try {
    connection = session.connection();
    connection.setAutoCommit(false);
    try {
         OracleCallableStatement proc = (OracleCallableStatement) connection.prepareCall("{ ? = call packages_pkg.clob_get_sql_psd_and_package (?,?,?,?,?) }");
         proc.registerOutParameter(1, Types.CLOB);
         proc.setString(2, pkgStatus);
         proc.setLong(3, packageSk); // pkg sk
         proc.setDate(4, new java.sql.Date(date.getTime())); //date
         proc.setString(5, null);
         if(null == provinceSk){
              proc.setNull(6, java.sql.Types.NUMERIC); //province sk
         }else{
              proc.setLong(6, provinceSk); //province sk
    ResultSet rs = null;
    try {
    proc.execute();
    sqlClobCode = (OracleThinClob)proc.getClob(1);
    Writer clobWriter = ((OracleThinClob)sqlClobCode).getCharacterOutputStream();
    if(null != clobWriter){
    try {
         char[] buf = new char[32000];
         buf[0] = '\0';
         sqlClobCode.getChars(1, sqlClobCode.getChunkSize(), buf);
         sb.append(buf);
    } catch(Exception exception) {                           
    logger.debug("Cannot read the SQL from CLOB that resolves the package");
    throw exception;
    sqlCode = sb.toString();
    }catch(Exception e){
         logger.error("Cannot retrieve the benefits types from the database.");
         throw new RuntimeException("Cannot retrieve the benefits types from the database.");
    }finally {               
    if(null != rs){
    rs.close();
    if(null != proc){
         proc.close();
    }

    Horatiu Stanciu wrote:
    Hi All !
         I was using this code with WL9.2 and Oracle 10 until recently with an Oracle thin driver
         URL: jdbc:oracle:thin:@[x.x.x.x]:1521:[SID]
         Driver Class: oracle.jdbc.xa.client.OracleXADataSource
         Now this was changed to
         URL: jdbc:bea:oracle://[x.x.x.x]:1521
         Class Driver Name: weblogic.jdbcx.oracle.OracleDataSource
         (Bea's oracle driver)
         but the code is not ok.
         The error is Caused by: java.lang.ClassCastException: weblogic.jdbc.wrapper.CallableStatement_weblogic_jdbcx_base_BaseCallableStatementWrapper
         at      com.esi.packages.dataaccess.pagination.ResolvePackageCriteriaPageProvider.getRPCSQLOfPackage(ResolvePackageCriteriaPageProvider.java:1208
         (this is the line where the cast of the result connection.prepareCall() is happenning).The weblogic.jdbc.vendor.oracle.OracleCallableStatement
    is for obtaining access to some Oracle's non-standard
    methods:
    void registerIndexTableOutParameter(int i, int j, int k, int l) throws java.sql.SQLException;
    void registerOutParameter(int i, int j, int k, int l) throws java.sql.SQLException;
    java.sql.ResultSet getCursor(int i) throws java.sql.SQLException;
    java.io.InputStream getAsciiStream(int i) throws java.sql.SQLException;
    java.io.InputStream getBinaryStream(int i) throws java.sql.SQLException;
    java.io.InputStream getUnicodeStream(int i) throws java.sql.SQLException;
    You're not calling any of those. Good. Just remove the cast. Stick to standard
    JDBC if you can. Also, note the comments I added about your setAutoCommit() call.
    Joe
         I tried different CallableStatement objects, from Bea but no success. Any idea/working example about this?
         The code follows:
         org.hibernate.Session session = this.getSession();
         String sqlCode = null;
         OracleThinClob sqlClobCode = null;
         StringBuffer sb = new StringBuffer();
         java.sql.Connection connection = null;
    try {
    connection = session.connection();
    connection.setAutoCommit(false); // DON'T DO THIS!! I SEE NO COMMIT. LET WEBLOGIC HANDLE ANY TX.
    try {
         OracleCallableStatement proc = connection.prepareCall("{ ? = call packages_pkg.clob_get_sql_psd_and_package (?,?,?,?,?) }");
         proc.registerOutParameter(1, Types.CLOB);
         proc.setString(2, pkgStatus);
         proc.setLong(3, packageSk); // pkg sk
         proc.setDate(4, new java.sql.Date(date.getTime())); //date
         proc.setString(5, null);
         if(null == provinceSk){
              proc.setNull(6, java.sql.Types.NUMERIC); //province sk
         }else{
              proc.setLong(6, provinceSk); //province sk
    ResultSet rs = null; // WHY IS THIS HERE?
    try {
    proc.execute();
    sqlClobCode = (OracleThinClob)proc.getClob(1);
    Writer clobWriter = ((OracleThinClob)sqlClobCode).getCharacterOutputStream();
    if(null != clobWriter){
    try {
         char[] buf = new char[32000];
         buf[0] = '\0';
         sqlClobCode.getChars(1, sqlClobCode.getChunkSize(), buf);
         sb.append(buf);
    } catch(Exception exception) {                           
    logger.debug("Cannot read the SQL from CLOB that resolves the package");
    throw exception;
    sqlCode = sb.toString();
    }catch(Exception e){
         logger.error("Cannot retrieve the benefits types from the database.");
         throw new RuntimeException("Cannot retrieve the benefits types from the database.");
    }finally {               
    if(null != rs){
    rs.close();
    if(null != proc){
         proc.close();

  • Problem with Oracle Thin Driver

    I use the Thin Oracle Driver (ojdbc14.jar) in my project and execute the code below.
    import java.sql.*;
    class dbAccess
         public static void main(String args[]) throws SQLException
              DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
              Connection conn =
                   DriverManager.getConnection(
                        "jdbc:oracle:thin:@dbhost:1521:ORA1",
                        "scott",
                        "tiger");
              // @machine:port:SID,   userid,  password
              Statement stmt = conn.createStatement();
              ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
              while (rset.next())
                   System.out.println(rset.getString(1)); // Print col 1
              stmt.close();
    }But then a exception occurs: "java.sql.SQLException: E/A-Exception: The Network Adapter could not establish the connection".
    Whats wrong? Do I need to install Oracle? I didn't. I just use that jar file because I read that I don't need anything else.

    1) I never configured that url, used the class from a example.
    2) I didn't configure username / password.
    3) As I said, Oracle is not installed at all. I only use the jar file.
    I read:
    > I want to create a Java application which runs on many 400 MHz
    laptops. Do I need to install Oracle completely on all these laptops
    to use Oracle database? Or can I install a "light" version, which
    doesn't use much harddisk space, RAM and prozessor time? If yes, how
    much harddisk space, RAM and prozessor time does it cost me?
    Since you're writing a Java application, I'm assuming that you'll be
    using JDBC to connect to the database.  If so, you just need to
    download the JDBC thin driver to the client machines-- no Oracle
    software needs to be installed.What is the solution?

  • JDBC thin driver connection problems using cybersafe authentication

    Hi
    i am trying to use jdbc thin driver to connect to oracle 8.1.7 DB using ASO and cybersafe authentication.
    Question:
    Does the oracle jdbc thin driver in 8.1.7.0.0 support third-party authentication features supported by Oracle Advanced Security--such
    as those provided by RADIUS, Kerberos, or SecurID
    i am getting the following error.
    Exception in thread "main" java.sql.SQLException: invalid arguments in call
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java)
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
    va)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
    at java.sql.DriverManager.getConnection(DriverManager.java:517)
    at java.sql.DriverManager.getConnection(DriverManager.java:146)
    at ASOJdbc.main(ASOJdbc.java:43)
    Following is the program i am trying.
    public class ASOJdbc {
         public static void main(String args[]) throws SQLException {
              String url = "jdbc:oracle:thin:@son1129:1521:sonias";
              Connection con;
              String query = "select EMPNO, ENAME from EMP";
              Statement stmt;
              // ASO Stuff
                   Properties props = new Properties();
                   try {
                   props.put("oracle.net.authentication_services", "CYBERSAFE");
                   props.put("oracle.net.authentication_gssapi_service", "oracle/[email protected]");                    
                   props.put("oracle.net.encryption_types_client", "DES");
                   props.put("oracle.net.encryption_types_server", "DES");               
                   props.put("oracle.net.crypto_seed", "4fhXXXX");               
                   } catch (Exception e) { e.printStackTrace();
                   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                   // ASO
                   con = DriverManager.getConnection(url, props);
                   stmt = con.createStatement();
                   ResultSet rs = stmt.executeQuery(query);
                   stmt.close();
                   con.close();          
    jdk version: jdk 1.3.1
    Oracle jdbc driver information, which i obtained as per Note 94091.1
    =============
    Database Product Name is Oracle
    Database Product Version is Oracle8i Enterprise Edition Release 8.1.7.1.1 - Production With the Partitioning option
    JServer Release 8.1.7.1.1 - Production
    JDBC Driver Name is Oracle JDBC driver
    JDBC Driver Version is 8.1.7.0.0
    JDBC Driver Major Version is 8
    JDBC Driver Minor Version is 1

    1. What JDBC Thin client Driver are you using? (version) If you don't know, open up the Manifest.
    2. the JDBC/OCI driver is a thick driver. It uses the oracle client, and therefore should read the tnsnames.ora
    3. You have yet to give us any ORA- errors, which would help immensely in troubleshooting.

Maybe you are looking for

  • Free goods tick mark coming automatically in PO?

    Hi Gurus, While creating PO, free goods tick mark coming automatically in PO if i m entering net price.. I have checked material master as well as vendor master.Nowhere free good maintained in both. Then, why it is picking automatically in PO? Pls he

  • Issue with Custom Field updation through BAPI FM

    Hi All, I am going to update some custom filelds in BUt050. So for these custom fields, I want to fill buffer memory so that I can track the changes through buffer. So I was calling FM BAPI_BUPR_CONTP_CHANGE and passing following parameters.         

  • How old must someone be for an apple account

    I bought my grand daughter an iPad Mini.  How do I set up an account for her in her name if she is underage

  • TZ database and oracle timezone conversions

    Hi There, I was wondering if oracle has any inbuilt functionality to convert; -- a given date in UTC -- to a given timezone -- considering the daylight savings -- which (was/is/will) observe(d) on the target timezone at the time of the given date? I

  • How to open photos as a list?

    Hello, I've always been annoyed at iPhoto's inability to resize images – especially since Preview can. So I made a droplet to resize images for me (see end) and set it as my external editor. Unfortunately, if I try to open multiple images from iPhoto