JDBC OCI Inactive Connections

Please Help,
Database: Oracle 9.2.0.6
JRE: 1.4.2
Is there a way to timeout and close inactive JDBC connections to our database using a SQL*Net, Database Parameter or a JDBC configuration file?
Thanks,
Kirk

Kirk,
Apart from what Andrei told you, in the Oracle Call Interface forum, the Oracle 10g JDBC driver supports a "InactivityTimeout" property in the "oracle.jdbc.pool.OracleDataSource" class. I believe the 10g driver is compatible with the Oracle 9i database. Check out the following URL for more details:
http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html
Good Luck,
Avi.

Similar Messages

  • 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

  • JDBC/OCI driver for JDK1.2

    Hi,
    I have an evaluation copy of Oracle8 version 8.0.3.0 and
    downloaded the JDBC/OCI driver for JDK1.1 (classe111.zip). The
    example I used was also taken from this site, which connects to
    the database and lists ename from emp, using scott/tiger.
    Everything worked fine under JDK1.1 but I can't get the code to
    work with JDK 1.2
    Does Oracle provide a JDBC/OCI driver that will work with JAVA
    1.2 or am I missing something. Please note that I am not using
    Oracle8i.
    Any assistance would be greatly appreciated.
    Karim
    null

    Karim,
    Openlink Software (http://www.openlinksw.com) provides JDBC 2.0
    drivers in version 3.2. This version will be hitting our public
    web site next week, but you can get pre-release components from
    ftp://ftp.openlinksw.com/pre-3.2/index.html
    The JDK 1.2 drivers are all the way at the bottom under the
    Windows section.
    HTH,
    Stephen
    Karim (guest) wrote:
    : Hi,
    : I have an evaluation copy of Oracle8 version 8.0.3.0 and
    : downloaded the JDBC/OCI driver for JDK1.1 (classe111.zip). The
    : example I used was also taken from this site, which connects
    to
    : the database and lists ename from emp, using scott/tiger.
    : Everything worked fine under JDK1.1 but I can't get the code
    to
    : work with JDK 1.2
    : Does Oracle provide a JDBC/OCI driver that will work with JAVA
    : 1.2 or am I missing something. Please note that I am not using
    : Oracle8i.
    : Any assistance would be greatly appreciated.
    : Karim
    null

  • AIX JDBC OCI Driver

    I'm using IBM's WebSphere JDBC connection pool to manage oracle
    connections. While the code worked normally on Sun Solaris, I
    get ORA-03123, ORA-03127 etc errors on AIX. I'm closing the
    resultsets, the statement handles and releasing the connection
    after each SQL execution. Is this an AIX JDBC OCI driver problem
    or am I missing something.
    Thanks,
    Ravi
    null

    I found problem like you but on DIGITAL UNIX 4.0D It's an
    AIO Consistency Error.. did you know some thing about this??
    and For your question OCI7 driver to connect to ORACLE7.3.4 are
    in liboci73.so or another extension depend on your OS (I don't
    know what's one on AIX) but it must come with Oracle
    Installation Package you can install on AIX :>
    Prashant (guest) wrote:
    : Hi:
    : Does any one know where I could find JDBC/OCI level 2 driver
    : for AIX (4.2) running Oracle (7.3.4). All I have been able to
    : locate is the NT and Solaris. Both contains classes and shared
    : libraries for that machine. I saw someone posted this question
    : before, however, suggestions was to use dynamic library
    generated
    : for Solaris, this will not work. Does anyone have other
    : suggestions.
    : Any and all help is appreciated.
    : Many Thanks
    : Prashant.
    null

  • Forcibly releasing inactive connection  BEA-001153

    Hello there!, here at work we use Jdeveloper 11.1.3.0 , with JNDI Data Sources to access database (configured from WLS) My DataSource config is:
    <?xml version='1.0' encoding='UTF-8'?>
    <jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd">
      <name>arq</name>
      <jdbc-driver-params>
        <url>jdbc:oracle:thin:@192.168.101.**:1521/HLSEDB</url>
        <driver-name>oracle.jdbc.OracleDriver</driver-name>
        <properties>
          <property>
            <name>user</name>
            <value>dbadmin</value>
          </property>
        </properties>
        <password-encrypted>{AES}6mOLLY92ueqAFcFK3k29k/SUeCy/qgp1a9HGsHsCTg4=</password-encrypted>
      </jdbc-driver-params>
      <jdbc-connection-pool-params>
        <initial-capacity>1</initial-capacity>
        <max-capacity>15</max-capacity>
        <capacity-increment>1</capacity-increment>
        <shrink-frequency-seconds>900</shrink-frequency-seconds>
        <highest-num-waiters>2147483647</highest-num-waiters>
        <connection-creation-retry-frequency-seconds>0</connection-creation-retry-frequency-seconds>
        <connection-reserve-timeout-seconds>10</connection-reserve-timeout-seconds>
        <test-frequency-seconds>120</test-frequency-seconds>
        <test-connections-on-reserve>false</test-connections-on-reserve>
        <ignore-in-use-connections-enabled>true</ignore-in-use-connections-enabled>
        <inactive-connection-timeout-seconds>360</inactive-connection-timeout-seconds>
        <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
        <login-delay-seconds>0</login-delay-seconds>
        <statement-cache-size>10</statement-cache-size>
        <statement-cache-type>LRU</statement-cache-type>
        <remove-infected-connections>true</remove-infected-connections>
        <seconds-to-trust-an-idle-pool-connection>10</seconds-to-trust-an-idle-pool-connection>
        <statement-timeout>-1</statement-timeout>
        <pinned-to-thread>false</pinned-to-thread>
      </jdbc-connection-pool-params>
      <jdbc-data-source-params>
        <jndi-name>jdbc/arq</jndi-name>
        <global-transactions-protocol>OnePhaseCommit</global-transactions-protocol>
      </jdbc-data-source-params>
    </jdbc-data-source>Minutes after deploying mi application, console starts to show :
    <JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@22e" back into the connection pool "SegDS", currently reserved by: java.lang.Exception
         at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:318)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:344)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:322)
         at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:438)
         at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:317)
         at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
         at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
         at weblogic.jdbc.pool.Driver.connect(Driver.java:149)There's any best practice or guide to configure my Datasource? or we should avoid JNDI's and start to use only appmodule connection?
    Thanks !

    I found the answer for this issue, because "Inactive timeout connection" of "advanced" in "data sources" of welogic admin console set to 300 seconds, once we changed to "zero". This msg is gone.

  • Jdbc oci interface and xdb API for oracle 9.2.0.7

    I have a Java application that uses the jdbc oci interface to connect to an Oracle database and insert some XML into an XMLType column using the XDB APIs provided in xdb.jar.
    OS : IBM AIX version 5.1
    JVM : IBM 32-bit SDK pour AIX, Java 2 Technology Edition, version 1.4.2
    libraries used :
    ojdbc14.jar
    nls_charset12.jar
    xdb.jar
    xmlparserv2.jar
    libocijdbc9.so
    with Oracle 9.2.0.1 the application worked correctly. However we have just upgraded from Oracle 9.2.0.1 to Oracle 9.2.0.7 and now the JVM crashes when the XMLType.createXML(java.sql.Connection, java.lang.String) API is called. The error message is :
    JVMDG217: Dump Handler is Processing Signal 11 - Please Wait.
    JVMDG303: JVM Requesting Java core file
    JVMDG304: Java core file written to /<snip>/javacore2375690.1152115549.txt
    JVMDG215: Dump Handler has Processed Exception Signal 11.
    start.shl: 2375690 Segmentation fault(coredump)
    In the javacore file we find the lines :
    1XHSIGRECV SIGSEGV received at 0xdd7b7d6c in /<snip>/libocijdbc9.so. Processing terminated.
    ... <snip> ...
    "Thread-2" (TID:0x3030B4D8, sys_thread_t:0x75A8B128, state:R, native ID:0xA0C) prio=5
    4XESTACKTRACE at oracle.xdb.XMLType.createXMLTypeFromStringNative(Native Method)
    4XESTACKTRACE at oracle.xdb.XMLType.<init>(XMLType.java:518)
    4XESTACKTRACE at oracle.xdb.XMLType.createXML(XMLType.java:593)
    Does anyone have any ideas? Changing the version from 9.2.0.7 is not an option.
    Thanks,
    Dave Gosling.

    The 9.2.0.5 patchset, and all patchsets, are available for download from Metalink.
    There should be a rather large variety of JDBC drivers that will connect to an 9.2.0.5 database if that's what you're asking about.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Memory Leak in 8.1.6.0.1 JDBC/OCI for Solaris

    Hello,
    there is a memory leak in the 8.1.6.0.1 JDBC-OCI driver for solaris.
    The leak causes your jvm to eat up all memory
    if you reuse callable statements
    (calling one statement multiple times with
    different values).
    The thin driver has no such problem. Is
    there any fix available ?

    Ok. The code spans multiple classes and
    most of it comes from a customized version
    of the Enhydra Java Application server.
    I have a class called "StandardDBConnection"
    which caches CallableStatements and is a
    wrapperclass for java.sql.DBConnection. The
    interesting method here is "prepareCall":
    * Get a callable statement given an SQL string. If the statement is
    * cached, return that statement, otherwise prepare and save in the
    * cache.
    * @param sql The SQL statement to be called.
    * @return a new CallableStatement object containing the
    * pre-compiled SQL statement.
    * @exception java.sql.SQLException If a database access error occurs
    * statement.
    public synchronized CallableStatement prepareCall(String sql)
    throws SQLException {
    PreparedStatement preparedStmt;
    logDebug ("Prepare call: " + sql);
    validate();
    preparedStmt = (PreparedStatement)preparedStmtCache.get(sql);
    // Check if the object returned by the cache really is a
    // callable statement. if it is not, someone did call first
    // prepareStatement() and now prepareCall() with the same
    // sql. Silently replace the existing cache entry by a
    // callable statement in this case.
    if (preparedStmt instanceof CallableStatement) {
    preparedStmt.clearParameters();
    else {
    // Need to close the old PreparedStatement in case we have to
    // replace it with a CallableStatement
    if (preparedStmt != null) {
    preparedStmt.close();
    else if (preparedStmtCache.size() >= maxPreparedStmts) {
    String key = (String)preparedStmtCache.keys().nextElement();
    ((PreparedStatement) preparedStmtCache.remove(key)).close();
    preparedStmt = connection.prepareCall(sql);
    preparedStmtCache.put(sql, preparedStmt);
    return (CallableStatement)preparedStmt;
    The statements get closed when I close the
    connection:
    boolean closeStmts = true;
    // Close the prepared statements.
    Enumeration e = preparedStmtCache.keys();
    while (e.hasMoreElements() && closeStmts) {
    String key = (String)e.nextElement();
    try {
    ((PreparedStatement)
    preparedStmtCache.remove(key)).close();
    } catch (SQLException except) {
    // Ignore errors, we maybe handling one.
    closeStmts = false;
    log.write(Logger.NOTICE,
    "DBConnection[" + id + "]: " + url +
    "\nUnable to close statements. Continuing....\n");
    In my classes using database queries I just
    use the prepareCall method of DBConnection
    and do not have to care about anything.
    Works perfectly with the thin driver, but
    as soon as I switch to oci... :-|
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by JDBC Dev Team:
    Soda, Rupper,
    Do you mind posting some code that shows us what your code was doing when you notice this leak?
    Thanks.<HR></BLOCKQUOTE>
    null

  • Oc4j connection pool: too much INACTIVE connections

    I am publishing an application - developed using Eclipse and previously published in Tomcat (where it works perfectly for a long time) - within corporate servers using Oc4j version 10.1.3. The database server is Oracle 9g.
    After the deployment operation, the application seems to work, but that happens during the work by users, there are still many connections whith status "INACTIVE", until to complete all the available connections.
    The datasource is set as follows:
    <connection-pool name="ConnectionPoolRichiestaPubblicazione">
    <connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
    user="REDAZIONE"
    password="password"
    url="jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)
         (ADDRESS_LIST=(LOAD_BALANCE=ON)
         (ADDRESS=(PROTOCOL=TCP)
         (HOST=10.146.2.86)(PORT=1521))
         (ADDRESS=(PROTOCOL=TCP)(HOST=10.146.2.86)(PORT=1521)))
         (CONNECT_DATA=
    (SERVER=DEDICATED)
    (SERVICE_NAME=XE)
    (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))">
    </connection-factory>
    </connection-pool>
    <managed-data-source
    jndi-name="jdbc/RichiestaPubblicazioneDS"
    name="RichiestaPubblicazioneDS"
    connection-pool-name="ConnectionPoolRichiestaPubblicazione" />
    The java code to establish a connection is as follows:
    private Connection creaConnessioneDataSource(String nomedatasource) throws ConnessioneException{
              LOGGER.debug("START");
              try {
                   InitialContext context = new InitialContext();
                   DataSource ds = (DataSource)context.lookup(nomedatasource);
                   LOGGER.debug("URL DATASOURCE : " + ds.getConnection().getMetaData().getURL());
                   LOGGER.debug("USERNAME : " + ds.getConnection().getMetaData().getUserName());
                   this.conn = ds.getConnection();
              catch( Exception e ) {
                   LOGGER.error("Errore nella connessione tramite datasource : " + StringUtils.getCustomStackTrace(e));
              LOGGER.debug("END");
              return this.conn;
    Connections and statements are closed using the following methods:
         public boolean chiudi(Connection conn){
              LOGGER.debug("START");
              boolean esito = false;
              if (conn != null){
                   try {
                        conn.close();
                        esito = true;
                        LOGGER.debug("Connessione chiusa");
                   catch (SQLException e) {
                        LOGGER.error("Eccezione nella chiusura della connessione : " + e);
              LOGGER.debug("END");
              return esito;
         public boolean chiudi(Statement stmt){
              LOGGER.debug("START");
              boolean esito = false;
              if (stmt != null){
                   try {
                        stmt.close();
                        esito = true;
                        LOGGER.debug("Statement chiuso");
                   } catch (SQLException e) {
                        LOGGER.error("Eccezione nella chiusura dello statement : " + e);
                        e.printStackTrace();
              LOGGER.debug("END");
              return esito;
    Here are a couple of examples of code that interact with the database:
         public List<StatoRichiestaSintesi> getElencoStatiRichieste() throws ConnessioneException{
              LOGGER.debug("START");
              List<StatoRichiestaSintesi> listaStati=new LinkedList<StatoRichiestaSintesi>();
              LOGGER.debug("Apriamo connessione e statement");
              Connection conn = databaseManager.creaConnessioneDataSource(datasource);
              Statement stmt = databaseManager.creaStatement(conn, false);
              String sql="SELECT * FROM STATORICHIESTA";
              try {
                   ResultSet rs = stmt.executeQuery(sql);
                   while(rs.next()){
                        StatoRichiestaSintesi temp=new StatoRichiestaSintesi();
                        temp.setIdStato(rs.getString(1));
                        temp.setDescrizioneStato(rs.getString(2));
                        listaStati.add(temp);
                   LOGGER.debug("Numero record trovati : " + listaStati.size());
              } catch (SQLException e) {
                   LOGGER.error("Eccezione di tipo SQL : " + StringUtils.getCustomStackTrace(e));
              finally{
                   LOGGER.debug("Chiusura di statement e connessione");
                   databaseManager.chiudi(stmt);
                   databaseManager.chiudi(conn);
              LOGGER.debug("END");
              return listaStati;
    Below is another example using PreparedStatement:
         private synchronized void aggiungiIndicazioneProgetto(String idprogetto, String idrichiesta) {
              LOGGER.debug("START");
              LOGGER.debug("Creo un oggetto di tipo connessione");
              Connection conn = databaseManager.creaConnessioneDataSource(datasource);
              LOGGER.debug("Definisco una query sql");
              String sql = "INSERT INTO RICHIESTAPROGETTO (IDRICHIESTA,IDPROGETTO) VALUES (?,?)";
              LOGGER.debug("Dichiaro un oggetto di tipo preparedstatement");
              PreparedStatement stmt = null;
              try {
                   LOGGER.debug("Istanzio l'oggetto statement");
                   stmt = conn.prepareStatement(sql);
                   LOGGER.debug("Imposto i segnalibri della query");
                   stmt.setString(1, idrichiesta);
                   stmt.setString(2, idprogetto);
                   LOGGER.debug("Eseguo la query di inserimento del progetto");
                   stmt.executeUpdate();
              } catch (SQLException e) {
                   LOGGER.error("Eccezione di tipo SQL : " + StringUtils.getCustomStackTrace(e));
              finally {
                   LOGGER.debug("Chiusura di statement e connessione");
                   databaseManager.chiudi(stmt);
                   databaseManager.chiudi(conn);
              LOGGER.debug("END");
         Which may be the cause for the described behavior?
         I hope someone help me..

    My problem is the following.
    If I deploy my application with the illustred datasource in my local OC4J (10.1.3 in a Standalone Environment) all work fine.
    The application creates a reasonable number of connections (in ORACLE - 10g Enterprise Edition Release 10.2.0.4.0 - db I run the query verification "select count(*) from v$session where username='MYAPPLICATION'"), and overall performance is very good.
    If, however, to deploy on the production machine of corporate (always 10.1.3, but obviously in Oracle Application Server Environment) the
    number of connections (status 'INACTIVE') grows massively, and this is saturated in a short time.
    The exception that at the end from the application is that:
    java.sql.SQLException: ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux Error: 2: No such file or directory
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
    oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
    oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:277)
    oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
    oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:243)
    oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:304)
    oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:430)
    oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)
    oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:608)
    oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:218)
    oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:114)
    oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:77)
    oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1361)
    oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:441)
    oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:336)
    oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:286)
    oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:179)
    oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:159)
    oracle.oc4j.sql.DataSourceConnectionPoolDataSource.getPooledConnection(DataSourceConnectionPoolDataSource.java:57)
    oracle.oc4j.sql.xa.EmulatedXADataSource.getXAConnection(EmulatedXADataSource.java:92)
    oracle.oc4j.sql.spi.ManagedConnectionFactoryImpl.createXAConnection(ManagedConnectionFactoryImpl.java:211)
    oracle.oc4j.sql.spi.ManagedConnectionFactoryImpl.createManagedConnection(ManagedConnectionFactoryImpl.java:170)
    com.evermind.server.connector.ApplicationConnectionManager.createManagedConnection(ApplicationConnectionManager.java:1377)
    oracle.j2ee.connector.ConnectionPoolImpl.createManagedConnectionFromFactory(ConnectionPoolImpl.java:327)
    oracle.j2ee.connector.ConnectionPoolImpl.access$800(ConnectionPoolImpl.java:98)
    also I add the other attributes of Connection Pool of the Datasource:
    Connections:
    Initial size of Connection Cache = 0     
    Minimum Number of Connections = 0
    Maximum Number of Connections = -1
    Connection Retry Interval (seconds) = 1
    Maximum Connection Attempts = 3
    Maximum Number of Statements Cached = 0     
    Lower Threshold Limit On Pool (%)= 20     
    Validate Connection = False
    What I can do?
    many thanks..

  • Execution of first request takes lot of time with JDBC OCI

    Hi,
    We are having an application which connects to Oracle server(10g Enterprise Edition Release 10.2.0.4.0 64bit) using Oracle JDBC OCI driver(10.2.0.1.0 production (10g R2)).
    Everything works fine.
    But what we observed is randomly the first request to the server vai JDBC driver in a day takes lot of time, varies from 5-15 minutes.
    If we execute the request again it executed immediately
    What we observed while debugging is preparedStatement.executeQuery() is taking time.
    We enabled logging at the JDBC driver layer and a snapshot isgiven below. Between T2CPreparedStatement.doDefineExecuteFetch () and T2CPreparedStatement.execute_for_rows () it takes 5 minutes. Any idea why it takes this much time and reason for it? Oracle driver is not throwing any exceptions
    *4-apr-2011 4:00:01* oracle.jdbc.driver.T2CPreparedStatement doDefineExecuteFetch
    FINE: T2CPreparedStatement.doDefineExecuteFetch ()
    *4-apr-2011 4:05:12* oracle.jdbc.driver.T2CPreparedStatement executeForRows
    FINE: T2CPreparedStatement.execute_for_rows () returns: void
    Detailed jdbc log is below
    -apr-2011 4:00:01 oracle.jdbc.driver.OracleStatement doExecuteWithTimeout
    FINE: OracleStatement.doExecuteWithTimeout() needToPrepareDefineBuffer = false
    4-apr-2011 4:00:01 oracle.jdbc.driver.PhysicalConnection needLine
    FINE: PhysicalConnection.needLine()--no return
    4-apr-2011 4:00:01 oracle.jdbc.driver.PhysicalConnection registerHeartbeat
    FINE: PhysicalConnection.registerHeartbeat()
    4-apr-2011 4:00:01 oracle.jdbc.driver.OracleStatement executeMaybeDescribe
    FINE: OracleStatement.execute_maybe_describe() rowPrefetchChanged = false, needToParse = false, needToPrepareDefineBuffer = false, columnsDefinedByUser = false
    4-apr-2011 4:00:01 oracle.jdbc.driver.T2CPreparedStatement executeForRows
    FINE: T2CPreparedStatement.execute_for_rows (executed_for_describe = false)
    4-apr-2011 4:00:01 oracle.jdbc.driver.T2CPreparedStatement doDefineExecuteFetch
    FINE: T2CPreparedStatement.doDefineExecuteFetch ()
    4-apr-2011 4:05:12 oracle.jdbc.driver.T2CPreparedStatement executeForRows
    FINE: T2CPreparedStatement.execute_for_rows () returns: void
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleStatement executeMaybeDescribe
    FINE: OracleStatement.execute_maybe_describe():return validRows = 1, needToPrepareDefineBuffer = false
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleStatement doExecuteWithTimeout
    FINE: OracleStatement.doExecuteWithTimeout():return validRows = 1, needToPrepareDefineBuffer = false
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl next
    FINE: OracleResultSetImpl.next(): closed=false
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl next
    FINER: closed=false, statement.currentRow=-1, statement.totalRowsVisited=0, statement.maxRows=0, statement.validRows=1, statement.gotLastBatch=true
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl getString
    INFO: OracleResultSetImpl.getString(columnIndex=1)
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl getString
    INFO: OracleResultSetImpl.getString(columnIndex=2)
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl getString
    INFO: OracleResultSetImpl.getString(columnIndex=3)
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl getTimestamp
    INFO: OracleResultSetImpl.getTimestamp(columnIndex=4)
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl wasNull
    INFO: OracleResultSetImpl.wasNull()
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl next
    FINE: OracleResultSetImpl.next(): closed=false
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl next
    FINER: closed=false, statement.currentRow=0, statement.totalRowsVisited=1, statement.maxRows=0, statement.validRows=1, statement.gotLastBatch=true
    4-apr-2011 4:05:12 oracle.jdbc.driver.PhysicalConnection needLine
    FINE: PhysicalConnection.needLine()--no return
    4-apr-2011 4:05:12 oracle.jdbc.driver.T2CPreparedStatement closeQuery
    FINE: T2CPreparedStatement.closeQuery ()
    4-apr-2011 4:05:12 oracle.jdbc.driver.T2CPreparedStatement closeQuery
    FINE: T2CPreparedStatement.closeQuery () returns: void
    4-apr-2011 4:05:12 oracle.jdbc.driver.OracleResultSetImpl close
    INFO: OracleResultSetImpl.close()
    Regards
    Sunil

    Hi,
    Thanks for the reply
    - SQL may vary. Its not the same query which takes time always. The same query executed immediately(using another connection from pool) works perfectly
    - If there is a failover or stale connection getting closed or timeout, will JDBC driver thhrows exdeption? I didn't see any exceptions in the driver logs. Is there anyway to identify whether failover or timeout is happening?
    Some other points
    - The application uses connection pooling. This means that connections are created in the beginning and kept in the pool. And it may be in the pool for 72 hours or , before this issue happens
    - Application uses prepared statements and the statements are preapred and kept and re used later. So the query which take s more time might be prepared before 48 hours or so.
    - This is not happening every day. Many times the pattern is , it happens after 60-72 hours after application is started.
    Sunil

  • JDBC OCI-8

    I want to use the Oracle OCI drivers. In Jdeveloper 3.1 s Connection Manager when I select Oracle JDBC OCI-8 Driver and if I click on Test Connection button I am getting the following Error Message.
    Error Message: No ocijdbc8 in java.library.path
    Dose any one knows about this? If so, Please let me know.
    Thanks
    Srini
    null

    you have to install client 8.1.6
    Ofir
    [email protected]

  • Jdbc-OCI:112020 Error with SQL Developer 4.0.0.12

    Hi,
    I receive an error, Incompatible version of libocijdbc[Jdbc:112030, Jdbc-OCI:112020, when attempting to log into an existing connection with SQL Developer 4.0.0.12.  I do have the JDK 7u45 for 32 bit Windows 7.  I know this was an issue in the past and attempted to look at earlier solutions with no luck.  Any idea?

    The issue is that if you are using the OCI (thick) JDBC  driver the version of the JDBC library (in SQLDeveloper) must match the version in your ORACLE_HOME. 
    It seems SQLDeveloper 4 ships with 11.2.0.3 version of JDBC and you have 11.2.0.2 client installed.
    Possible options:
    1     Don't use the OCI driver.  You can untick the box in Tools |Preferences|Database |Advanced, but some connection types use it anyway.
    2     Upgrade your Oracle client.

  • JDBC-OCI (8.1.6) - Weblogic

    Hi,
    I am trying to get weblogic 4.5 to connect to an Oracle 8i database.
    The database and listener are operating fine, but so far I cannot connect from weblogic.
    1) What type is the JDBC-OCI driver for 8.1.6 (supporting JDK 1.2)?
    2) Do I need to install the OCI driver as well as the JDBC driver on the weblogic server? If so, where do I get the OCI driver?
    Regards,
    Ultan
    [email protected]

    Your questions are confusing. You seem to consider OCI Driver and JDBC Driver as 2 versions of drivers, but in reality the former is a type of the latter.
    Oracle supplies 2 types of JDBC drivers, i.e., Type II, or the OCI driver, and Type IV, the Thin driver. They are both contained in the classes111 or classes12.zip file. To use the OCI driver, you need to install the Oracle Client Library (OCI library).
    To use these drivers with WebLogic, you need to include the path to the classes111.zip file in your weblogic.class.path variable in the startWebLogic.bat or .sh script file, or set it in the Windows Registry.
    Eric Ma

  • JDBC OCI error

    When i try to connect with oc4j in java with the oci8 driver i get the following error:
         int oracle.jdbc.oci8.OCIEnv.get_env_handle()
         long oracle.jdbc.oci8.OCIEnv.getEnvHandle()
         oracle.jdbc.dbaccess.DBConversion oracle.jdbc.oci8.OCIDBAccess.logon(java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
         void oracle.jdbc.driver.OracleConnection.<init>(oracle.jdbc.dbaccess.DBAccess, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
         java.sql.Connection oracle.jdbc.driver.OracleDriver.getConnectionInstance(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
         java.sql.Connection oracle.jdbc.driver.OracleDriver.connect(java.lang.String, java.util.Properties)
         java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties, java.lang.ClassLoader)
         java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String)
         java.sql.Connection com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].sql.DriverManagerDataSource.getConnection()
         void Info.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletRequest, com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.ApplicationServerThread, com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletRequest, com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run()
    I have installed the 9i client. Does anybody know what went wrong..?

    This means the JDBC classes in classes12dms.jar and the underlying OCI libraries (as part of Oracle client) are out of sync. If you are using OC4J 9.0.2 stand alone then please use the Oracle Client shipped in the Oracle9iAS R2 (9.0.2) CD.
    Please search the forum as this topic has been discussed several times in this forum.
    thanks
    Debu

  • XA transaction using weblogic.jdbc.oci.xa.XADataSource

    Hi everyone, I am trying to execute XA transaction using the driver XA compatible
    driver
    weblogic.jdbc.oci.xa.XADataSource. I have added c:\bea7.0SP4
    \weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll in the PATH in my
    weblogic managed server startup script.
    When I start managed server, I get the error saying that weblogicoci38.dll
    is not in java.library.path. I checked the server log file and in that
    it clearly shows that java.library.path contains this file. Please suggest
    me what to do.
    I have weblogic 7.0 with SP4 and databse is oracle 8i.
    thanks,
    jyothi
    ####<Mar 1, 2004 9:52:36 AM EST> <Error> <JDBC> <temp1> <server1> <main> <kernel
    identity> <> <001060> <Cannot startup connection pool "ConnPool1" java.sql.SQLException:
    System.loadLibrary(weblogicoci38) threw java.lang.UnsatisfiedLinkError: no weblogicoci38
    in java.library.path>
    ####<Mar 1, 2004 9:52:49 AM EST> <Info> <Management> <temp1> <server1> <main>
    <kernel identity> <> <141187> <Java system properties are defined as follows:
    awt.toolkit = sun.awt.windows.WToolkit
    bea.home = c:\bea7.0SP4
    file.encoding = Cp1252
    file.encoding.pkg = sun.io
    file.separator = \
    java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
    java.awt.printerjob = sun.awt.windows.WPrinterJob
    java.class.path = c:\bea7.0SP4\jdk131_08\lib\tools.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic_sp.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic.jar;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\parser.jar.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\xml4j_1_1_16.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\p6spy.jar
    java.class.version = 47.0
    java.ext.dirs = c:\bea7.0SP4\jdk131_08\jre\lib\ext
    java.home = c:\bea7.0SP4\jdk131_08\jre
    java.io.tmpdir = C:\DOCUME~1\jshanbag\LOCALS~1\Temp\
    java.library.path = c:\bea7.0SP4\jdk131_08\bin;.;C:\WINNT\System32;C:\WINNT;.;c:\bea7.0SP4\weblogic700\server\bin;c:\bea7.0SP4\jdk131_08\bin;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;\jpda\bin;C:\Oracle\Ora81\bin;C:\Program
    Files\Oracle\jre\1.1.7\bin;C:\PROGRA~1\PVCS\VM\win32\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32\WBEM;c:\;c:\vslick\win

    jyothip wrote:
    Hi everyone, I am trying to execute XA transaction using the driver XA compatible
    driver
    weblogic.jdbc.oci.xa.XADataSource. I have added c:\bea7.0SP4
    \weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll in the PATH in my
    weblogic managed server startup script.
    When I start managed server, I get the error saying that weblogicoci38.dll
    is not in java.library.path. I checked the server log file and in that
    it clearly shows that java.library.path contains this file. Please suggest
    me what to do.Hi. This error message can be confusing for some OSes. If the process tries to
    load a method from XYZ.DLL, and finds the DLL, but in order to load that method,
    it finds it needs to also load ABC.DLL (such as the Oracle OCI DLL or the OS C libraries)
    and doesn't find that lower-level DLL, the user can get a message mentioning only the
    first (present) DLL. Please print out your full java.library.path. Does it correctly
    list all the basing OS C libraries, and the Oracle Clint library path?
    thanks,
    Joe
    >
    I have weblogic 7.0 with SP4 and databse is oracle 8i.
    thanks,
    jyothi
    ####<Mar 1, 2004 9:52:36 AM EST> <Error> <JDBC> <temp1> <server1> <main> <kernel
    identity> <> <001060> <Cannot startup connection pool "ConnPool1" java.sql.SQLException:
    System.loadLibrary(weblogicoci38) threw java.lang.UnsatisfiedLinkError: no weblogicoci38
    in java.library.path>
    ####<Mar 1, 2004 9:52:49 AM EST> <Info> <Management> <temp1> <server1> <main>
    <kernel identity> <> <141187> <Java system properties are defined as follows:
    awt.toolkit = sun.awt.windows.WToolkit
    bea.home = c:\bea7.0SP4
    file.encoding = Cp1252
    file.encoding.pkg = sun.io
    file.separator = \
    java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
    java.awt.printerjob = sun.awt.windows.WPrinterJob
    java.class.path = c:\bea7.0SP4\jdk131_08\lib\tools.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic_sp.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic.jar;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\parser.jar.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\xml4j_1_1_16.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\p6spy.jar
    java.class.version = 47.0
    java.ext.dirs = c:\bea7.0SP4\jdk131_08\jre\lib\ext
    java.home = c:\bea7.0SP4\jdk131_08\jre
    java.io.tmpdir = C:\DOCUME~1\jshanbag\LOCALS~1\Temp\
    java.library.path = c:\bea7.0SP4\jdk131_08\bin;.;C:\WINNT\System32;C:\WINNT;.;c:\bea7.0SP4\weblogic700\server\bin;c:\bea7.0SP4\jdk131_08\bin;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;\jpda\bin;C:\Oracle\Ora81\bin;C:\Program
    Files\Oracle\jre\1.1.7\bin;C:\PROGRA~1\PVCS\VM\win32\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32\WBEM;c:\;c:\vslick\win

  • How to use the Oracle 10g JDBC OCI driver in JBoss ?

    Greetings,
    I deployed ojdbc14.jar in JBoss and I created an Oracle datasource. I have the following questions:
    1. In the datasource descriptor file I have:
    <connection-url>jdbc:oracle:oci:@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=xe)))</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    Is it enough in order to use the Oracle 10g JDBC OCI driver ?
    2. After having looked-up the datasource and created a connection, the classe of these objects are org.jboss.resource.adapter.jdbc.WrapperDataSource and, respectivelly, org.jboss.resource.adapter.jdbc.WrappedConnection. How can I have access to oracle.jdbc.oci and oracle.jdbc.pool packages ?
    Many thanks in advance,
    Nicolas

    Hello
    We were banging our heads on a similar thing, maybe this will help
    We needed to convert the wrapped connection to an OracleConnection so that we could do a proxy switch, but maybe you could apply it to your situation anyway
    1-you have to convert the Connection object to an OracleConnection in order to use the method that does the proxy switch
    The method to do this is getInnermostDelegate()
    Once you call this method, you get a new Connection object that can be cast to an OracleConnection object
    See below for the snippet of code
    // now switch the user and reselect
    if (conn instanceof DelegatingConnection) {
    properties.put("PROXY_USER_NAME","peter/peter");
    oraConn =((DelegatingConnection)conn).getInnermostDelegate();
    if (oraConn == null)
    out.println("oraConn is null\n");
    ((OracleConnection)oraConn).openProxySession(OracleConnection.PROXYTYPE_USER_NAME,properties);
    2-you have to put a setting in the xml file in conf/Catalina/localhost that allows you to call the getInnermostDelegate() method
    By default, Tomcat does not allow you to call this method, it will always return null
    You have to change the xml to allow it to return an object
    It seems that WebSphere and Tomcat both frown on vendor-specific methods that do not comply with the JDBC standards, but do allow it
    Here is the setting:
    <parameter>
    <!-- NOTE: This is necessary to enable access to the Oracle connection object -->
    <name>accessToUnderlyingConnectionAllowed</name>
    <value>true</value>
    </parameter>
    Note, this setting was also put in the conf/server.xml file
    Thanks
    Peter

Maybe you are looking for

  • Can two Iphones have the same account/email address?

    Can two iphones have the same account/email address? I bought two phones-one for my wife and the other for myself. They are both under the same account /itunes account /email address-Would this cause a conflict with the two phones?

  • Document split for previous year open item

    Dear All, We have upgraded from 4.6 to ecc 6.0 .I have a problem of document splitting . Suppose there is open item of previous year i.e vendor  and after 1.4.09 the liability is transferred to another vendor the system gives me error that' profit ce

  • 'Buy Book' won't work.

    It takes me to an empty order page in iPhoto, which I have to Force Quit to get back to iPhoto. It's very fustrating! Any help on this matter would be great!

  • Adding approvers for a SC in awaiting approval status

    Hi Experts, I have created a shopping cart that has to be approved by some approver in the organization. until now everything is working fine. when i am adding a new approver by editing the shopping cart, it is displaying that the cart is successfull

  • NSSharingService on mountain lion without sharing window

    On mountain lion, I try the new sharing possiblities with the NSSharingService class of AppKit.framework Everything goes fine with this three lines of code NSArray* array = @[ @"myText", [NSImage imageNamed:@"myImageFile"] ]; NSSharingService* sharin