Cursors remained open after closing connection

I am using OC4J 10g (Application Server) and Oracle10g DB. OC4J is maintaining the connection pool(com.evermind.sql.DriverManagerDataSource). I get the connection from pool and call DB procedure, then close resultset, statement and connection. It closes the opened cursors against resultset. But left some implicit cursors opened and never closed so cursor count is going to increase.
If i dont use pool no cursor remained open and count is zero. It means the cursors of pooled connections are not closed.
wait-timeout="60"
min-connections="5"
max-connections="100"
inactivity-timeout="15"
<property name="stmt-cache-size" value="2000"/>
Tahir

Hi Justin,
Thnx for your reply and you're understanding is correct but the problem I face is when multiple concurrent users access the JSP page from which I'm actually calling the servlet to retrieve the image, the number of cursors being left open increases. As the load on the page increases (i.e. no of usesrs increase) oracle seems to have problems in garbage collecting the open cursors ... which eventually leads it to throw maximum cursors exceeded exceptions.
Any suggestions ?
-Athar

Similar Messages

  • How do i get the download window to remain open after closing firefox browser window

    i sometimes download a bunch of files all at ones then have to go back to review them. but i don't need the browser open to do this just the download window. in older versions the download window would remain open after i closed the browser but i don't see a way to do that anymore?

    You can set the pref browser.download.manager.quitBehavior to 2 on the about:config page.
    See http://kb.mozillazine.org/browser.download.manager.quitBehavior
    To open the <i>about:config</i> page, type <b>about:config</b> in the location (address) bar and press the "<i>Enter</i>" key, just like you type the url of a website to open a website.<br />
    If you see a warning then you can confirm that you want to access that page.<br />

  • Why do ports remain open after closing Firefox?

    I have noticed recently that several ports associated with Firefox remain open when the Firefox browser is closed. The number of open ports increases each time Firefox is opened and I have seen that the number of open ports has reached to more than 1,000 open ports at a time. The majority of the open ports are outbound TCP using port 443 and I also note a sustained increase in the network traffic after Firefox is closed.
    I have observed ports opened by the Explorer browser and noted that all of the ports opened with Explorer close when the Explorer browser is closed. The Firefox ports remain open when the browser is closed.
    Questions:
    - Should all open ports associated with an open Firefox browser close when the Firefox browser is closed?
    - Does Firefox have a setting that closes all open ports when the Firefox browser is closed?
    - Does XP have a setting that will close all open ports associated with Firefox when Firefox is closed?
    - Should I have security concerns about the accumulating open ports and increased network activity when using Firefox?
    Thanks.

    You can set the pref browser.download.manager.quitBehavior to 2 on the about:config page.
    See http://kb.mozillazine.org/browser.download.manager.quitBehavior
    To open the <i>about:config</i> page, type <b>about:config</b> in the location (address) bar and press the "<i>Enter</i>" key, just like you type the url of a website to open a website.<br />
    If you see a warning then you can confirm that you want to access that page.<br />

  • Some tabs remain open after closing them

    When I have opened a lot of tabs (10+) and I close them afterwards, sometimes a few of those tabs will still show in the tab bar. When I click them I can't view them though. It seems to be a problem with the tab bar, not with web pages.

    Start Firefox in <u>[[Safe Mode]]</u> to check if one of the extensions or if hardware acceleration is causing the problem (switch to the DEFAULT theme: Firefox/Tools > Add-ons > Appearance/Themes).
    *Don't make any changes on the Safe mode start window.
    *https://support.mozilla.org/kb/Safe+Mode
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes

  • Implicit PL/SQL cursors remain open, causing ORA-01000 (Client 9.2.0.1)

    Hello,
    since migrating our system from Oracle Client 9.0.X to 9.2.0.1 (Windows XP), i am encountering troubles when calling a stored procedure from a Cobol-Program:
    after a while i run into a 'Maximum open cursors exceeded'-message (ORA-01000)
    The stored procedure returns a cursor (ref_cursor)
    When Executing the stored procedure, there are actually 2 cursors involved, in fact the stored PL/SQL procedure implicitely opens a child-cursor when doing a select within the PL/SQL.
    After fetching the result and closing the cursor in my cobol-program, it correctly closes the cursor associated with the stored-procedure, but it does not close the cursor that was implicitely opened by oracle.
    After a while i am running into a Maximum open cursors message, because those cursors have not properly been closed.
    Here's a simple PL/SQL package that illustrates the problem:
    create or replace package scott.SCOTTS_PACKAGE is
    type ref_cursor IS REF CURSOR;
    function GET_EMP(EMP_IN CHAR) return ref_cursor;
    end SCOTTS_PACKAGE;
    create or replace package body scott.SCOTTS_PACKAGE is
    -- Function and procedure implementations
    function GET_EMP(EMP_IN CHAR) return ref_cursor is
    MyCurs ref_cursor;
    begin
    OPEN MyCurs FOR
    SELECT EMPNO ,
    ENAME ,
    JOB
    FROM SCOTT.EMP
    WHERE ENAME = EMP_IN;
    return(MyCurs);
    end;
    end SCOTTS_PACKAGE;
    Here are some exerpts from my cobol program:
    (The program iterates 100x through the section that executes the PL/SQL. After each iteration an additional open cursor remains in the database)
    003800 EXEC SQL BEGIN DECLARE SECTION END-EXEC.
    003900*
    004000 01 SQL-USERNAME PIC X(16) VARYING.
    004100 01 SQL-PASSWD PIC X(16) VARYING.
    004200 01 SQL-DBNAME PIC X(64) VARYING.
    004300 01 ORACLE.
    004700 02 ORA-CUR-EMP SQL-CURSOR.
    01 EMPREC.
    02 EMPREC-EMPNO PIC X(4).
    02 EMPREC-ENAME PIC X(10).
    02 EMPREC-JOB PIC X(9).
    005400 EXEC SQL END DECLARE SECTION END-EXEC.
    018400 PROCEDURE DIVISION.
    CONTINUE.
    018700 EXEC SQL
    018800 WHENEVER SQLERROR DO PERFORM SQL-ERROR
    018900 END-EXEC.
    019000*
    CONTINUE.
    019100 EXEC SQL
    019200 WHENEVER NOT FOUND DO PERFORM SQL-NOT-FOUND
    019300 END-EXEC.
    022400 EXEC SQL
    022500 ALLOCATE :ORA-CUR-EMP
    022600 END-EXEC
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100
    ACCEPT DUMMY FROM TER
    IF DUMMY = "E"
    MOVE 100 TO I
    END-IF
    PERFORM GET-EMP
    ADD 1 TO I
    END-PERFORM
    119300 GET-EMP SECTION.
    119400************************
    119500 GAM0.
    MOVE SPACES TO EMPREC-EMPNO EMPREC-JOB
    MOVE "SMITH" TO EMPREC-ENAME
    120200 EXEC SQL AT SSSI EXECUTE
    120300 BEGIN
    120400 :ORA-CUR-EMP:=
    120500 SCOTT.SCOTTS_PACKAGE.GET_EMP(:EMPREC-ENAME );
    120900
    END;
    121000 END-EXEC
    121200 IF DB-ERR-CODE NOT = HIGH-VALUE
    121300 DISPLAY "CCSIFSO:GET-AUTRE-MATR:APPEL PERS... OK"
    121400 EXEC SQL
    121500 FETCH :ORA-CUR-EMP
    121600 INTO
    121700 :EMPREC-EMPNO,
    121800 :EMPREC-ENAME,
    121900 :EMPREC-JOB
    122400 END-EXEC
    122500 END-IF
    122600*
    122700 IF DB-ERR-CODE NOT = HIGH-VALUE
    122800 DISPLAY "CCSIFSO:GET-AUTRE-MATR:APPEL FETCH.. OK"
    123000 ELSE
    123100 MOVE LOW-VALUE TO DB-ERR-CODE
    123200 END-IF
    123300 EXEC SQL
    123400 CLOSE :ORA-CUR-EMP
    123500 END-EXEC
    123600 GA-EX.
    123700 EXIT.
    124000 SQL-NOT-FOUND SECTION.
    124100*----------------------
    124200 NF0.
    124300 DISPLAY "CCSIFSO:SQL-NOT-FOUND SECTION."
    124400 MOVE HIGH-VALUE TO DB-ERR-CODE.
    124500 NF-EX.
    124600 EXIT.
    124700*
    124800 SQL-ERROR SECTION.
    124900*-----------------
    125000 ER0.
    125200 EXEC SQL
    125300 WHENEVER SQLERROR CONTINUE
    125400 END-EXEC
    125700 MOVE HIGH-VALUE TO DB-ERR-CODE
    125800*
    126100 DISPLAY "ORACLE ERROR DETECTED: " SQLCODE UPON TER
    126200 DISPLAY SQLERRMC UPON TER
    126300*
    126400 EXEC SQL AT SSSI
    126500 ROLLBACK WORK
    126600 RELEASE
    126700 END-EXEC
    126800 DISPLAY "----------------------------" UPON TER
    126900 DISPLAY " ! ROLLBACK ET DISCONNECT ! " UPON TER
    127000 DISPLAY "----------------------------" UPON TER
    127200 CALL "PPTERMJ".
    127400 ER-EX.
    127500 EXIT.
    Finally here's an exerpt from V$OPEN_CURSOR, after a few iterations:
    1 begin :b1 := SCOTT . SCOTTS_PACKAGE . GET_EMP (:b2 ) ; END ;
    2 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    3 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    4 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    5 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    6 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    7 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    8 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    9 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    10 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    11 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    As you see, there is only 1 cursor starting with 'begin ... '
    but there are 10 implicit cursors 'SELECT EMPNO, ... ' that have not been properly closed, nor reused by ORACLE.
    In our old configuration (ORACLE CLient 9.0.X), you would only see:
    1 begin :b1 := SCOTT . SCOTTS_PACKAGE . GET_EMP (:b2 ) ; END ;
    2 SELECT EMPNO , ENAME , JOB FROM EMP WHERE ENAME = :B1
    meaning all the other cursors have properly been closed.
    As a conclusion: the program correctly closes the implicit cursors when using a 9.0 Client, wheras the implicit cursors remain open on Client 9.2.0.1 (Windows XP)
    The underlying database can be either 8.i or 9, the problem remains the same.
    Finally here's a small Delphi code, using ODAC-components, that somewhat illustrates the same problem:
    procedure TForm1.ExecProcClick(Sender: TObject);
    var I: INTEGER ;
    begin
    FOR I := 1 TO 5 DO
    BEGIN
    SP1.StoredProcName:='SCOTT.SCOTTS_PACKAGE.GET_EMP';
    SP1.Prepare;
    SP1.ParamByName('EMP_IN').AsString := 'SMITH';
    SP1.ExecProc;
    SP1.Next;
    SP1.Close;
    SP1.UnPrepare;
    END;
    end;
    After each call to 'PREPARE', an additional implicit cursor remains open on the database. (using Oracle Client 9.2.0.1)
    On our old system (Oracle Client 9.0 or 8.X), the same program would not generate accumulating open cursors on the database
    Any suggestions would be welcome,
    Claude

    Cobol.. been many years since I last even saw some Cobol source code. Invokes all kinds of memories. :-)
    Since you found the patch, the advice is superfluous, but works. Close the cursor at the PL/SQL side, e.g.
    create or replace procedure CloseRefCursor( cRefCursor TYPELIB.TRefCursor ) is
    begin
      close cRefCursor;
    exception when OTHERS then
      -- if the cursor is already gone, not a problem
      NULL;
    end;In Delphi for example, one can subclass the class used for ref cursor calls and add a call to the above PL/SQL proc in the destructor. Or add create a standard Cobol close ref cursor section that does similar.

  • ODBC connection remains open after disconnect

    Hello,
    in my application I use 2 ODBC connects to 2 different ODBC drivers.
    My problem:
    When I close one connection (with DBDisconnect), the connection on the database remains open until I close the second one.
    Is this a known behavior?
    Is there a way to force the closing or to make it independant of the other connection?
    Regards
    Fred
    Solved!
    Go to Solution.

    As ODBC connections are not inherently included in the CVI environment, I looked up the DBDisconnect function and it says that the DBDisconnect function disconnects the last connected ODBC database. So it is expected behavior.
    Ian M.
    National Instruments

  • Sockets remaining open after connection failure

    Hi - I have a multithreaded application that runs as a daemon (always up) and uses OCI (10.2.0, 64-bit client). If a database connection or query fails for any reason, it is coded to keep on retrying on a set schedule until it succeeds. The application runs on RHEL 4 (64-bit) and is compiled with g++ 3.4.6. (It's nominally C++, but is really what I call "C with objects" as it doesn't use a lot of the standard C++-isms, though there are objects -- the OCI code in question is in a C++ object wrapper that I wrote.)
    Anyway, about 5 days ago, the database where most of the queries are run went down (it's a 10g server; I don't remember the exact version, but since it's down, I'm not sure it matters), and it has not come back up, although the hosts it runs on are up. Meanwhile, my application kept failing to connect and retrying, and the number of queries that this was happening to kept on growing as new ones are added every day. Unknown to me, the failed connection attempts were leaving open TCP sockets to the database that was down, until eventually the maximum open files on the system was exceeded and I was forced to reboot. Twice. (It happened again the next day.)
    From what I can tell, I am properly dropping the handles and such when a connection fails, so why are the sockets staying open? Is there anything that can be done to force the socket to close after a failed connect? This morning I changed all the queries to use a different database (that's actually up), but according to lsof, there are still 56 open sockets to the old (non-working) database, even though none of my program threads are actively trying to connect there anymore.
    The sockets do close, by the way, if the application is stopped and restarted. But they remain open as long as the instance that created them is still running. (I added a periodic restart to clean things up, but I'd really like to fix the problem instead of using a stopgap like this!)
    Sample code is below. This first bit is what is used to connect and log in. (Note that I have this mutex-locked -- I know OCI is supposed to be thread-safe if you use the OCI_THREADED attribute, but I've been having so many issues that I thought it was safer.)
    if (check_err(OCIEnvCreate(&env, (OCI_THREADED), (void *) 0, 0, 0, 0, (size_t) 0, (void **) 0)) != 0)
    fprintf(stderr, "Error allocating OCI environment handle\n");
    return;
    // Allocate error handle.
    if (check_err(OCIHandleAlloc((void *) env, (void **) &err, OCI_HTYPE_ERROR, 0, (void **) 0)) != 0)
    fprintf(stderr, "Error creating OCI error handle.\n");
    return;
    // Allocate server handle.
    if (check_err(OCIHandleAlloc((void *) env, (void **) &server, OCI_HTYPE_SERVER, 0, (void **) 0)) != 0)
    fprintf(stderr, "Error allocating OCI server handle.\n");
    return;
    // Allocate service handle.
    if (check_err(OCIHandleAlloc((void *) env, (void **) &svc, OCI_HTYPE_SVCCTX, 0, (void **) 0)) != 0)
    fprintf(stderr, "Error allocating OCI service handle.\n");
    return;
    [Note: these are snippets from two different functions; this is a C++ wrapper that uses OCI, so the above code is in the database object constructor, and below is a separate login function.]
    // Attach to server.
    retcode = OCIServerAttach(server, err, (text *) curDS, strlen(curDS), OCI_DEFAULT);
    if (check_err(retcode))
    fprintf(stderr, "Error attaching to Oracle server.\n");
    return(retcode);
    // Set server attribute in service handle.
    retcode = OCIAttrSet((void *) svc, OCI_HTYPE_SVCCTX, (void *) server, 0, OCI_ATTR_SERVER, err);
    if (check_err(retcode))
    fprintf(stderr, "Error setting OCI server attribute.\n");
    return(retcode);
    // Allocate session handle.
    retcode = OCIHandleAlloc((void *) env, (void **) &sess, OCI_HTYPE_SESSION, 0, (void **) 0);
    if (check_err(retcode))
    fprintf(stderr, "Error allocating OCI session handle.\n");
    return(retcode);
    // Set username attribute in session handle.
    retcode = OCIAttrSet((void *) sess, OCI_HTYPE_SESSION, (void *) curUser, strlen(curUser), OCI_ATTR_USERNAME, err);
    if (check_err(retcode))
    fprintf(stderr, "Error setting OCI username.\n");
    return(retcode);
    // Set password attribute in session handle.
    retcode = OCIAttrSet((void *) sess, OCI_HTYPE_SESSION, (void *) curPass, strlen(curPass), OCI_ATTR_PASSWORD, err);
    if (check_err(retcode))
    fprintf(stderr, "Error setting OCI password.\n");
    return(retcode);
    // Start session.
    retcode = OCISessionBegin(svc, err, sess, OCI_CRED_RDBMS, OCI_DEFAULT);
    if (check_err(retcode) != 0)
    return(retcode);
    // Set session attribute in service handle
    retcode = OCIAttrSet((void *) svc, OCI_HTYPE_SVCCTX, (void *) sess, 0, OCI_ATTR_SESSION, err);
    if (check_err(retcode))
    fprintf(stderr, "Error setting OCI session attribute.\n");
    return(retcode);
    If any of the above calls returns an error, the next call is to the database object destructor (also mutexed), which looks like this:
    if (connected && svc && err && sess && check_err(OCISessionEnd(svc, err, sess, OCI_DEFAULT)))
    fprintf(stderr, "Oracle - Error ending session\n");
    if (connected && server && err && check_err(OCIServerDetach(server, err, OCI_DEFAULT)))
    fprintf(stderr, "Oracle - Error detaching from server\n");
    if (connected && server && check_err(OCIHandleFree((void *) server, OCI_HTYPE_SERVER)))
    fprintf(stderr, "Oracle - Error freeing server handle\n");
    if (connected && svc && check_err(OCIHandleFree((void *) svc, OCI_HTYPE_SVCCTX)))
    fprintf(stderr, "Oracle - Error freeing service handle\n");
    if (connected && err && check_err(OCIHandleFree((void *) err, OCI_HTYPE_ERROR)))
    fprintf(stderr, "Oracle - Error freeing error handle\n");
    if (connected && env && check_err(OCIHandleFree((void *) env, OCI_HTYPE_ENV)))
    fprintf(stderr, "Oracle - Error freeing environment handle\n");
    Anyone else had this happen? Any insights/help would be greatly appreciated!
    Oh, one more note: though the application is multithreaded, none of the database objects or connections is shared -- each thread makes its own connections and maintains database objects separately. I added the mutex locks because Helgrind was reporting race conditions on handle allocations and deallocations.
    Thanks,
    --Tina                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Hmm, I believe I did have an OCIHandleFree on the session handle in an earlier version of the code. I can't remember why I took it out, but I do remember that there was a reason -- it was causing a problem. (Yeah, I know, vague enough for ya?) Anyway, the OCI documentation said that when you call OCIHandleFree on the environment handle, any child handles would be implicitly freed, so I assumed it wouldn't be a problem. Still, I'll try putting it back and see what happens. Thanks.
    Oh, and to answer your question (about netstat), it said the processes were ESTABLISHED. But the Oracle server was down (although the hosts it resided on were up). The connection attempt failed with the error message:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Message was edited by:
    user613364

  • Adobe XI remains open after printing from command line

    I am using a program to collect, batch print and delete multiple PDF files.
    The following command line is used to print the files, after which the file is deleted and next file is collected.
         "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" /T /N FileName.pdf
    I have now upgraded to Adobe XI, however Adobe remains open (and minimized) after sending the print job to the printer, resulting in my programing freezing while waiting to delete.
    Is there a parameter to close Adobe after printing?
    This is rather urgent as we have started rolling out the new Adobe XI.
    OS = Windows7 Prof x64

    Command line parameters are sparsely documented and are officially not supported. What is documented can be found here: http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pd f
    I've not seen anything that shows what you want to do.

  • ITunes Unexpectedly Re-Opens after Closing

    I just reformatted my laptop and upon installing iTunes 6.0.3.5, I noticed that iTunes, after closing it, will relaunch a few times, usually two.
    I figured maybe it was something with the software version, so I just updated to 6.0.4 and it does the exact same thing. I never did this before I cleaned off my laptop and I was curious to see if anyone else had a similar problem, and hopefully a solution.
    Sony Vaio S360   Windows XP Pro   1.7ghz Pentium M (Centrino), 512 MB RAM, 80 GB HDD

    'scuse me, don't mean to bump but I would like some help.

  • My Firefox.exe process remain open after I close the browser.If I open it it's says to open a new window.I need to close the process manualy(Ctrl+Alt+del).What can I do?Thanks .

    Need to close the process.

    It does take Firefox a while to shut down; it has to update some databases. But it should take less than a minute.
    In the support article, this problem is called a "hang at exit" because Firefox hangs when shutting down. Maybe something here will help: https://support.mozilla.com/en-US/kb/Firefox+hangs#Hang_at_exit
    Also, sometimes open Firefox windows disappear from the Task Bar. You can use Alt+Tab to switch to them if they remain open.

  • "file upload" window remains open after selecting a file. Have to "force quit" to get it to go away. How can I fix this?

    Every time I try to upload a file, the "file upload" window remains open and will not go away unless I force quit Firefox. The window stays in front of all other programs and applications. Is this a problem with Firefox or with OSX? Any idea how to solve it? I've tried clearing the cache & cookies, etc. Should I reinstall Firefox or is there a simpler solution?

    On Windows (don't know about Mac), the latest version will always take over the file association, and become the default for indd files. It's impossible to change it.
    But there is a plugin for ID that makes this possible. Never tried it myself.
    https://www.rorohiko.com/wordpress/downloads/lightning-brain-soxy/

  • Transaction behaviour after closed connection?

    Hi,
    Using JDBC, while making multiple inserts as part of a transaction, this Exception was thrown:
    java.sql.SQLException: Closed Connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:873)
    at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:792)
    As a consequence, the commit() statement was skipped and control went to a catch block where a rollback was attempted. With the connection being closed, this resulted in another Exception:
    java.sql.SQLException: Closed Connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1170)
    So the transaction was neither explicitly committed or rolledback by the client code.
    The connection was returned to the pool (which I assume discarded it).
    The program then continued by getting a new connection from the pool. It started a new transaction with setAutoCommit(false) and started reading data.
    Surprisingly it read data written in the previous transaction (that I thought failed with the connection being closed by some external factor).
    The program hasn't altered the transaction isolation level, so if I understand correctly, that should still be the default of READ_COMMITTED.
    I'm trying to understand what has happened here. My understanding is that a local transaction occurs within a session and according to JDBC docs, a Connection equates to a session. Yet, by the only explanation I can come up with for the effects I've seen is that here a transaction persisted across two separate Connections and that the beginning of the transaction in the second Connection caused the commit of the previous half finished transaction in the previously used Connection.
    Is this possible? Is this stuff documented anywhere?
    Cheers,
    Derek

    Hi,
    the documentation (Oracle® Database JDBC Developer's Guide and Reference chatper 3, Oracle version 10.2) states that:
    If the auto-commit mode is disabled and you close the connection without explicitly committing or rolling back your last changes, then an implicit COMMIT operation is run.
    This matches what you observed.
    If you describe the libraries you are using (es Spring with AOP, Hibernate, plain JDBC, etc) I think the forum users can proviode some further suggestions/workarounds.
    ciao,
    Giovanni

  • SQL Connections remain open after Crystal Report closes

    I am wirting an interface to use the crystal report viewer to print reports, connecting to a Progress Open Edge 10.1B database.  From our application we declare the application, report, exportoptions and connectionproperties objects and pass these to the crystal reports viewer.  Once the report is printed we release the objects and set their variables for null.  However we are finding that the SQL connection to the database is remaining connected and we can only release the connection by manually going in a disconnecting.
    I have read in forums that people use .dispose or .close to release the connection, however we do not have access to these methods as we do not use .NET.  Are there any methods we can use to disconnect these sql connections?

    Hi Dean,
    Moved to the Legacy Application forums. Likely using the RDC as your report engine.
    You should still be able to close and dispose of the report objects. They are not specific to .NET.
    In VB it would look something like these lines::
        crReport.Close
        Set CrystalActiveXReportViewer1.ReportSource = Nothing
        Set crReport = Nothing
    Once the report is closed it should disconnect from the DB. If you close the application does that disconnect?
    Have you looked on 4GL's site for info on how to?
    Thank you
    Don

  • Database connection remains open after close being called

    I am using oracle OC4J as my application server. I am not using connection pool and I am using non-pooled datasource to get connection. The database connection is made at runtime and then closed. I want to test if the users' connection sessions have been killed after they logout the application. But when I checked the table v$session in the database, it shows one connection remaining. I checked my program, the close method has been called. Does anybody know the solution?

    Hi Chen,
    This is just a suggestion for something to try -- only if you haven't
    already tried it, that is!
    Try running OC4J in "debug" mode. Here are details on how to do that:
    http://kb.atlassian.com/content/atlassian/howto/orionproperties.jsp
    Hope this helps you!
    Good Luck,
    Avi.

  • RFC Connection remains open after portal logoff

    Hi,
    We have configured Universal Worklist in our EP7 EHP1 SPS4 Portal.
    When a user connects to the Portal and launches the UWL it creates an RFC connection to the backend ECC. However, when the user moves away from UWL iview or logs out or closes the browser the RFC connection in the backend still
    remains and is released only after the timeout value reached as set in ECC.
    Are there any settings on the portal or ECC to release the session immediately once  user moves away from UWL or logs out of portal ?
    Thanks,
    Savy.

    Hi my friend
    It costs time and resources to establish an RFC connection, therefore it is not immediately deleted but maintained by the system to be reused. But in case there're special purpose to control RFCs, here're 2 parameters to do so:
    The parameter gw/gw_disconnect is a timeout in seconds to close the TCP connection between two SAP gateways if there is no RFC connetion on it for the given timeout. But if there is an active RFC connection onit it will not be closed even if there is no traffic on that RFC connection. Thats why you need another parameter.
    The parameter gw/keepalive is used to periodically check all active RFC (and other) gateway connections if there was no traffic on them for the given time.
    Regards,

Maybe you are looking for

  • Trying to get Windows back after Boot Camp repartition + Ubuntu 14.04LTS install + rEFIt install...

    Hello, Boot Camp troubleshooter folks. Again I come to you with a variation of the same refrain so many others have said. I haven't quite found my exact version of it, so here's mine: I'm taking an online class that required me to make a third partit

  • Hp scan not installed (HP Laserjet Pro 200 Color MFP)

    Hi all, My "HP Scan" desktop icon stopped working. HP "Pring & Scan Doctor" could find the software on my laptop. As the next step I uninstalled the software (Scanner software). At HP Smart Install I reinstalled the printer. Owever, the installation

  • Installation of forms 11g release 2 on windows 7 64 bit client

    Hi, I am trying to install forms and reports 11g release 2 on my windows 7 64 bit client. When I tried to install it, I got a message Weblogic should be installed first. In the Oracle site there are many versions of Weblogic. Which should I install?

  • Unfamiliar icon & how to get it serviced

    I let the ipod go too long without charging... In addition to the exclamation point/folder icon, sometimes an unfamiliar icon (not one of those seen on the ipod support page) will appear. It has an exclamation and a battery. The ipod can be recognize

  • Investing podcasts from UK and Australia taking over?

    I have produced an investing podcast for years and suddenly notice that the top investing podcast category is now loaded with podcasts from Australia and the UK. Did iTunes combine all of the English speaking podcasts recently? This change seems to b