ORA-000060 (deadlock) while insert

Dear All,
I'm currently facing a problem:
- we are getting ORA-000060
- on trace file generated by the error, shows an INSERT operation as current operation
- The table related to the above INSERT operation has below properties:
- NO BITMAP INDEX
- The table is RANGE PARTITIONED
- A LOCALY PARTITIONED UNIQUE INDEX
- DB version is Oracle 9.2.0.6 on HPUX
My question is why an insert operation will cause deadlock (bitmap index) ?
Or it is resulted from other operation, if this is the case then why trace file show the insert operation as current operation ?
Please help.
BR
Obaid

Ok, according to the deadlock graph, these are TX enqueues, so, it's definitely NOT an unindexed foreign key problem. Locking due to unindexed FKs cause TM enqueue waits, not TX enqueue.
Since it's an S mode wait on TX and the statement involved is an insert, the most likely cause is overlapping unique values on the index.
Suppose you have:
create table testit(a number);
create unique index uniq_ind on testit(a);
Now, if you have two sessions inserting into testit:
session 1:
insert into testit values(1);
session 2:
insert into testit values(2);
session 1:
--the following insert statement will begin to hang, waiting for session 2 to commit or rollback
insert into testit values(2);
session 2:
--the following session will hang for three seconds, and then Oracle will detect a deadlock and session 1 will catch an ORA-00060.
insert into testit values(1);
So, if you have two concurrent sessions that overlap on the values of the uncommitted unique values, you'll see S mode TX enqueue waits.
Hope that helps,
-Mark

Similar Messages

  • ORA-000060: Deadlock detected

    i m using oracle 9.2.0.6.0 on windows server 2003. I am getting the following error
    ORA-000060: Deadlock detected.
    hope u people can help me out...

    Hi,
    Did you realize that you have posted teh same topic 3 times ??This is not a good thing to do in this forum.
    Deadlock detected is mainly an issue that is caused by poor management of transactions within the application.
    ORA-00060: deadlock detected while waiting for resource
    Cause: Transactions deadlocked one another while waiting for resources.
    Action: Look at the trace file to see the transactions and resources involved. Retry if necessary.
    You must have got an associated file with it.Check back that file to find the offending processes which caused this error.What is the complete error statement that you have got with this?
    Aman....

  • ORA-000060 (deadlock) and no alert/trace info

    oracle 9.2.0.5 running on SunOs 5.9
    I am getting very seldom (2-5 per month) these errors.
    1) the alert file shows this:
    ORA-000060: Deadlock detected. More info in file xxx.trc
    2) after running "tkprof" on the trace file I see only this:
    1 session in tracefile.
    0 user SQL statements in trace file.
    0 internal SQL statements in trace file.
    0 SQL statements in trace file.
    0 unique SQL statements in trace file.
    I tried most of "tkprof" options but still there is no info on what caused the deadlock. any ideas ?

    if you open the trace file in an editor, what do you
    see?this works! the TRC file actually shows me the 2 sessions that contended for the resource. I never realized you could open the TRC file directly, I was led to believe you needed to "tkprof" to be able to browse it.
    me bad, and lots of thanks to you!

  • ORA-02025 error while insert into emp@custard select ....

    Hello All,
    I want to insert the row in MS Access 2003 database from SQL PLUS. My oracle version is 9.2.0.1. and OS is Windows 2000 server.
    Insert command is:
    SQL> insert into emp@custard select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp ;
    and the error is
    ORA-02025: all tables in the SQL statement must be at the remote database.
    Thanks for helping me.
    Akshay.
    PS: i am able to see the records of Access table in SQL Plus using below command
    select * from acc_tab@custard ;

    Hi,
    I got the solution.
    You can not use directly Insert into remote_table select * from local_table while the other database is not oracle database. The same can be done as:
    SQL> select * from emp@custard ;
    no rows selected
    SQL> copy from scott/tiger@trimcap insert emp@custard using select * from emp ;
    Array fetch/bind size is 15. (arraysize is 15)
    Will commit when done. (copycommit is 0)
    Maximum long size is 80. (long is 80)
    14 rows selected from scott@trimcap.
    14 rows inserted into EMP@CUSTARD.
    14 rows committed into EMP@CUSTARD at DEFAULT HOST connection.
    SQL> select * from emp@custard ;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7369 SMITH CLERK 7902 17/DEC/80 800
    20
    7499 ALLEN SALESMAN 7698 20/FEB/81 1600 300
    30
    7521 WARD SALESMAN 7698 22/FEB/81 1250 500
    30
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7566 JONES MANAGER 7839 02/APR/81 2975
    20
    7654 MARTIN SALESMAN 7698 28/SEP/81 1250 1400
    30
    7698 BLAKE MANAGER 7839 01/MAY/81 2850
    30
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7782 CLARK MANAGER 7839 09/JUN/81 2450
    10
    7788 SCOTT ANALYST 7566 19/APR/87 3000
    20
    7839 KING PRESIDENT 17/NOV/81 5000
    10
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7844 TURNER SALESMAN 7698 08/SEP/81 1500 0
    30
    7876 ADAMS CLERK 7788 23/MAY/87 1100
    20
    7900 JAMES CLERK 7698 03/DEC/81 950
    30
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7902 FORD ANALYST 7566 03/DEC/81 3000
    20
    7934 MILLER CLERK 7782 23/JAN/82 1300
    10
    14 rows selected.
    SQL>
    Hope this helps others... if you stuck like me.
    Thanks & Regards,
    Akshay Brahmbhatt.

  • Help with ORA 14400 error while inserting data

    Hi all,
    i am facing an ora 14400 error in the following scenario , please help.
    i have created a table using the syntax:
    CREATE TABLE temp_table
    GRPKEY NUMBER(20, 0) NOT NULL,
    UKEY NUMBER(10, 0),
    ANUM VARCHAR2(250 BYTE),
    APC VARCHAR2(2 BYTE),
    SID VARCHAR2(65 BYTE),
    RDATETIME VARCHAR2(19 BYTE),
    CKEY NUMBER(20, 0),
    AVER VARCHAR2(25 BYTE),
    CVER VARCHAR2(250 BYTE),
    TNAME VARCHAR2(50 BYTE),
    SCODE VARCHAR2(30 BYTE),
    PTYPE VARCHAR2(50 BYTE),
    FILENUMB NUMBER(10, 0),
    LINENUMB NUMBER(10, 0),
    ENTRY_CREATEDDATE DATE
    , CONSTRAINT temp_table_PK PRIMARY KEY (GRPKEY))
    PARTITION BY RANGE(ENTRY_CREATEDDATE)
    (PARTITION P0 VALUES LESS THAN(TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    when i try to insert data using :
    insert into temp_table values
    (1,null,null,null,null,null,null,null,null,null,null,null,null,null,'01-NOV-2010');
    i get the following error output:
    Error report:
    SQL Error: ORA-14400: inserted partition key does not map to any partition
    14400. 00000 - "inserted partition key does not map to any partition"
    *Cause:    An attempt was made to insert a record into, a Range or Composite
    Range object, with a concatenated partition key that is beyond
    the concatenated partition bound list of the last partition -OR-
    An attempt was made to insert a record into a List object with
    a partition key that did not match the literal values specified
    for any of the partitions.
    *Action:   Do not insert the key. Or, add a partition capable of accepting
    the key, Or add values matching the key to a partition specification

    Hi Chaitanya,
    Change your table script to
    CREATE TABLE temp_table
    GRPKEY NUMBER(20, 0) NOT NULL,
    UKEY NUMBER(10, 0),
    ANUM VARCHAR2(250 BYTE),
    APC VARCHAR2(2 BYTE),
    SID VARCHAR2(65 BYTE),
    RDATETIME VARCHAR2(19 BYTE),
    CKEY NUMBER(20, 0),
    AVER VARCHAR2(25 BYTE),
    CVER VARCHAR2(250 BYTE),
    TNAME VARCHAR2(50 BYTE),
    SCODE VARCHAR2(30 BYTE),
    PTYPE VARCHAR2(50 BYTE),
    FILENUMB NUMBER(10, 0),
    LINENUMB NUMBER(10, 0),
    ENTRY_CREATEDDATE DATE
    , CONSTRAINT temp_table_PK PRIMARY KEY (GRPKEY))
    PARTITION BY RANGE(ENTRY_CREATEDDATE)
    (PARTITION P0 VALUES LESS THAN(TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
    PARTITION P1 VALUES LESS THAN(MAXVALUE)
    insert into temp_table values
    (1,null,null,null,null,null,null,null,null,null,null,null,null,null,'01-NOV-2010');
    1 row insertedor refer question regarding "Date Partitioning a table"
    *009*
    Edited by: 009 on Nov 3, 2010 11:29 PM

  • ORA-01438 error while inserting the BLOB value in the column

    Hi All,
    I have created a table with definition:
    CREATE TABLE stories (id NUMBER(4), story BLOB);
    Now I am trying to populate this table with some values from other table with:
    insert into stories
    select sensitivity_id, multi_value from sensitivity where sensitivity_id=3983021541;
    Here the multi_value column from th source table is also declared as BLOB so I shlould not get this error. What kind of precision needs to be set so the query doesnt faills?
    Regards,
    aashish

    Hi,
    Can you elaorate more on this..I never tried his thing but this is just a part of big procedure where I have to do this.
    Thanks,
    aashish

  • ORA-000060: Deadlock detected. More info in file ...

    Hi,
    Could anybody tell me if in such a situation may i do something particulary is the database have seen a deadlock ... ?
    Thanks, Paul

    Hi,
    In addition, you can check "Oracle deadlocks tips" at:
    http://www.dba-oracle.com/t_deadlock.htm
    another one:
    http://www.oracle-base.com/articles/misc/Deadlocks.php
    Good luck!
    Marcello M.
    Message was edited by:
    Marcello M.

  • ORA-00060: deadlock detected while waiting for resource ON INSERT

    I am running into a deadlock while INSERTING records into a table. This seems strange to me. I've tracked it down to the following, and it feels like an Oracle bug to me, so I wanted to get another opinion:
    I have a procedure that inserts records into a table.
    That table has a Before INSERT OR UPDATE OR DELETE FOR EACH ROW trigger on it.
    The trigger has an IF UPDATING section in it; this section updates records in other tables related to this table.
    I have confirmed that the IF UPDATING section is not firing (which makes sense because I am inserting, but since I was getting a deadlock, it seemed to make sense that somehow the updating section was firing).
    Here's the part that makes this feel buggy:
    I have been able to reproduce the deadlock pretty much on command.
    I commented out the IF UPDATING section of the trigger, compiled the trigger, and then put the IF UPDATING section of the trigger back in, and compiled it. Note there was no net code change.
    I ran my procedure that inserts records and experienced NO DEADLOCK.
    However, if I compile the original version of the trigger (before I commented code out and put it back in), the deadlock reappears. To make the deadlock go away, I have to re-comment out the code, compile, put the code back, and compile again.
    I know this sounds crazy. I'm running Oracle Database 11g Release 11.2.0.2.0.
    Has anyone ever seen something like this before?

    MPL wrote:
    Thanks - there are no autonomous transactions being run. Here's the deadlock graph:
    ---------Blocker(s)--------  ---------Waiter(s)---------
    Resource Name          process session holds waits  process session holds waits
    TX-00220006-0000a762        71     207     X             70      46           S
    TX-00200020-000072ee        70      46     X             71     207           S
    session 207: DID 0001-0047-00000016     session 46: DID 0001-0046-00000021
    session 46: DID 0001-0046-00000021      session 207: DID 0001-0047-00000016
    Rows waited on:
    Session 207: obj - rowid = 00000000 - D/////AACAAAMS9AAA
    (dictionary objn - 0, file - 2, block - 50365, slot - 0)
    Session 46: obj - rowid = 0000ADF7 - AAAsJmAASAAAXYGAAA
    (dictionary objn - 44535, file - 18, block - 95750, slot - 0)
    There are various anomalies that can cause the TX locks waiting in S mode - many of them to do with indexes or unique constraints. Your rowid information may be misleading - but it's worth checking which object has object_id 44535. (I'm always inclined to assume that any reference to slot 0 is suspect, and objn 0 is clearly not a real object.)
    The trace file should be reporting the SQL that the two sessions are waiting on - does that give you any clues.
    Regards
    Jonathan Lewis

  • Ora 000060 error

    Hi,
    i'm running a query and having after a lot of time this error in the alert:
    ORA-000060: Deadlock detected. More info in file /OraBin/admin/dev/bdump/s002_5490_dev.trc.
    I checked the trace file and it says:
    DEADLOCK DETECTED
    Current SQL statement for this session:
    UPDATE reason SET CREATIONDATE='',CREATIONUSER='',CHANGEDATE='',CHANGEUSER='',IDREASONLIST=1,IDREASONSTATUSLIST=1,IDPRODUCTTYPELIST=0,PRODUCTNUMBER='0',BADITEM=0,CIF2='',NOTE='' WHERE IDCustfile=10001
    The following deadlock is not an ORACLE error. It is a
    deadlock due to user error in the design of an application
    or from issuing incorrect ad-hoc SQL.
    You see the query? It's very simple, i don't know why it's failing.. Of course i did something wrong but where?
    Thanks
    Tarek

    About the error.. of course it is an application error.
    So, the transaction does something abnormal and then it locked a table. When the application that did this is killed on oracle there is still the lock. When did this lock be released? Does oracle has a timeout? does it recognize that the application that ran the transaction is dead so it can be killed and resources released?

  • Error while inserting into MS-SQL Server from Oracle using HS

    Hi,
    I am using hetrogeneous connection.
    I want to insert into MS-SQL Server Table by selecting from Oracle Tables.
    insert into tableone@mssql select * from table2;
    Table2 is in oracle database.
    while executing i'm getting
    ORA-02025: all tables in the SQL statement must be at the remote database
    Please guide me.
    Regards
    Salih KM

    some guy come up a solution by himself before. go ahead and try it
    ORA-02025 error while insert into emp@custard select ....

  • Deadlock issue in while inserting in oracle table.

    I have written a procedure which copy data in to oracle tables.Other user can also start inserting in that table so to prevent these intervention.
    i have applied locks on these two tables and assume that my procedure will wait for other users to finish and it will apply lock on the tables and other users will now wait till this procedure finishes.
    My Procedure looks like:--
    lock table table1 in exclusive mode;
    lock table table2 in exclusive mode;
    update table1 set where rownum < x;
    forall .....insert in table 2.
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_printline(SQLERRM)
    commit;
    END;
    But my problem is i am still receiving oracle error as below and the above procedure fails in between:-
    ORA-00060: deadlock detected while waiting for resource
    Any hint ??
    Can we get this error if i execute a SELECT statement on some table which is not locked by me and some other other is updating/deletig/inserting in that table ?
    *Select statement is without update clause.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    user620101 wrote:
    I have written a procedure which copy data in to oracle tables.Other user can also start inserting in that table so to prevent these intervention.
    i have applied locks on these two tables and assume that my procedure will wait for other users to finish and it will apply lock on the tables and other users will now wait till this procedure finishes.
    My Procedure looks like:--
    lock table table1 in exclusive mode;
    lock table table2 in exclusive mode;
    update table1 set where rownum < x;
    forall .....insert in table 2.
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_printline(SQLERRM)
    commit;
    END;
    But my problem is i am still receiving oracle error as below and the above procedure fails in between:-
    ORA-00060: deadlock detected while waiting for resource
    Any hint ??But if you successfully lock TABLE1 (in session #1) and another session (session #2) is holding a lock against TABLE2 (say it's currently updating a row) then session #1 has to wait when you issue the Lock table command for table2. So session #1 is waiting, and then session #2 tries to do ANY modification to TABLE1 (which session #1 still has locked, and is still waiting to obtain the lock on TABLE2)... whamo, deadlock.
    user620101 wrote:
    Can we get this error if i execute a SELECT statement on some table which is not locked by me and some other other is updating/deletig/inserting in that table ?
    *Select statement is without update clause.No, writes (and locks) do not block reads. So a simple select statement (unless you issued a FOR UPDATE clause) would not cause this issue.
    What does your actual code look like, and what are you actually attempting to do? Why do you think you need to lock the tables, is this a one time operation, a continual operation of the system? Please explain in much more detail what you've got going on here.

  • ORA-00060: deadlock detected while waiting for resource with Tbs Read-only

    Hi all,
    We're using Oracle 10.2.0.1 and 9.2.0.4.
    I'm testing the performing of a procedure that inserts, like this:
    CREATE OR REPLACE PROCEDURE P$TAD_TEST
    IS
    TYPE T_T1_C1          IS TABLE OF T1.C1%TYPE INDEX BY PLS_INTEGER;
    TYPE T_T1_DT           IS TABLE OF T1.DT%TYPE INDEX BY PLS_INTEGER;
    P_C1 T_T1_C1;
    P_DT T_T1_DT;
    P_RESULT NUMBER;
    BEGIN
    FOR j IN 1..4032 LOOP
    P_C1(j) := j;
    P_DT(j) := SYSDATE + (j/24/60);
    END LOOP;
    FORALL i IN P_C1.FIRST..P_C1.LAST SAVE EXCEPTIONS
    INSERT INTO T1 VALUES (P_C1(i), P_DT(i));
    EXCEPTION
    WHEN OTHERS THEN
    P_RESULT := SQLCODE;
    END;
    The table T1 is partitioned across 10 tablespaces. The test consist to take
    these tablespace read-only and perform the procedure, and analyze the results,
    like erros.
    but when I perform the procedure, The alert.log indicates the error
    ORA-00060: deadlock detected while waiting for resource.
    Why this occurs only the tablespaces are read-only?
    thank you!!!!

    Hi,
    yesterday we got this error again(in fact twice) and we were able to get the trace file. It says this is NOT oracle error. i was wrong in suspecting Oracle. This is the trace file details. i dont know how to debug this. Any help appreciated.
    *** 2010-06-15 16:24:29.243
    *** ACTION NAME:() 2010-06-15 16:24:29.231
    *** MODULE NAME:(JDBC Thin Client) 2010-06-15 16:24:29.231
    *** SERVICE NAME: 2010-06-15 16:24:29.231
    *** SESSION ID:(482.4266) 2010-06-15 16:24:29.231
    DEADLOCK DETECTED ( ORA-00060 )
    [Transaction Deadlock]
    The following deadlock is not an ORACLE error. It is a
    deadlock due to user error in the design of an application
    or from issuing incorrect ad-hoc SQL. The following
    information may aid in determining the deadlock:
    Deadlock graph:
    ---------Blocker(s)-------- ---------Waiter(s)---------
    Resource Name process session holds waits process session holds waits
    TX-00300021-0000b52d 209 482 X 247 474 S
    TX-002a0009-00011b24 247 474 X 209 482 S
    session 482: DID 0001-00D1-0000000A session 474: DID 0001-00F7-00000008
    session 474: DID 0001-00F7-00000008 session 482: DID 0001-00D1-0000000A
    Rows waited on:
    Session 474: obj - rowid = 0000CED4 - AAAM7UAAxAAAVgSAAA
    (dictionary objn - 52948, file - 49, block - 88082, slot - 0)
    Session 482: obj - rowid = 0000D8BF - AAANi/AAuAAB+z/AAA
    (dictionary objn - 55487, file - 46, block - 519423, slot - 0)
    Information on the OTHER waiting sessions:
    Session 474:
    pid=247 serial=31796 audsid=25502259 user: 62/USER
    O/S info: ....
    program: JDBC Thin Client
    application name: JDBC Thin Client, hash value=2546894660
    Current SQL Statement:
    INSERT QUERY1
    End of information on OTHER waiting sessions.
    Current SQL statement for this session:
    INSERT QUERY2
    Thanks,
    AK

  • JDAPI Error: ORA-04020: deadlock detected while trying to lock object

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

    I have written a JDAPI program to perform read-only impact analysis and report any problems.
    The following error is occurring:
    "A deadlock among DDL and parse locks is detected.
    This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock.
    ORA-04020: deadlock detected while trying to lock object /NSPC6/CHECK_FOR_FORM_CHANGE"
    The error refers to a procedure in a PL/SQL library.
    In one case the error occurred after my final "end of processing" message, which is followed only by a call to "Jdapi.shutdown()".
    Any ideas?
    Thanks,
    Neville Sweet.

  • Database error"ORA-00060: deadlock detected while waiting for resource"

    Hi All,
    I got dump as
    Database error text........: "ORA-00060: deadlock detected while waiting for
      resource"
    Internal call code.........: "[RSQL/RDUP/NRIV ]"
    Please check the entries in the system log (Transaction SM21).
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
    in
    procedure "READ_NRIV" "(FORM)", nor was it propagated by a RAISING clause.
    Can u ppl tell me how to get correct this?
    Edited by: Bala Chandar on Jul 20, 2009 11:01 AM

    Hi Bala,
    Same type of dump we got when we trigger the DTP which in process chain to load data from DSO to Info cube. And the load had processed with 225 data package and at 164th data package we got this error and except 164th data package all data package processed successfully
    And the request was red. So we had done processed manually by clicking the icon. So all its been green and successfully loaded.
    So when you do process manual the particular data package which got failed will be process successfully  

  • ORA-00060: deadlock detected while waiting for resource CLOSE cursor

    Hi,
    I am a new member of this forum. I am working with a problem we got a few weeks ago. It is from a Pro C batch executable running on 10 threads dealing with >800 data accessed from multiple tables. The error as reported came from a package.function call.
    This is the error I encountered:
    process_item~G****, D***~-60~ORA-00060: deadlock detected while waiting for resource~PACKAGE ERROR = CLOSE cursor C_***** in package R***.I*** 7641
    The cursor is a simple SELECT cursor without Table or Record locking.
    My questions are:
    *Upon the occurrence of this error, is the execution already at the CLOSE cursor line or did the error occurred between the OPEN cursor and the CLOSE cursor? There are several lines of code in between OPEN and CLOSE:
    - one that calls for a package.function that simply stores parameter values to a variable
    - another one which fetches the cursor. The group that holds the cursor values is only used by a single function in the package
    *Is it possible for this CLOSE cursor to cause a deadlock? What could have caused this?
    *From what I know, Oracle deals with deadlocks by aborting the deadlocking process while others continue, but this deadlock caused our program to hang. How is this possible? Could the root cause of the deadlock be from our threading program? This is a rare occurrence and happened only twice this year.
    Thanks,
    Raf

    Raf Serrano wrote:
    Hi,
    I am a new member of this forum. I am working with a problem we got a few weeks ago. It is from a Pro C batch executable running on 10 threads dealing with >800 data accessed from multiple tables. The error as reported came from a package.function call.
    This is the error I encountered:
    process_item~G****, D***~-60~ORA-00060: deadlock detected while waiting for resource~PACKAGE ERROR = CLOSE cursor C_***** in package R***.I*** 7641
    The cursor is a simple SELECT cursor without Table or Record locking.
    My questions are:
    *Upon the occurrence of this error, is the execution already at the CLOSE cursor line or did the error occurred between the OPEN cursor and the CLOSE cursor? There are several lines of code in between OPEN and CLOSE:
    - one that calls for a package.function that simply stores parameter values to a variable
    - another one which fetches the cursor. The group that holds the cursor values is only used by a single function in the package
    *Is it possible for this CLOSE cursor to cause a deadlock? What could have caused this?
    *From what I know, Oracle deals with deadlocks by aborting the deadlocking process while others continue, but this deadlock caused our program to hang. How is this possible? Could the root cause of the deadlock be from our threading program? This is a rare occurrence and happened only twice this year.
    Thanks,
    RafSELECT (without FOR UPDATE) statements are never involved in ORA-00060.
    only DML statements throw ORA-00060 error

Maybe you are looking for