Identifying locked rows

I have an uncommited session in one window and I'm attempting to locate the locked row for Oracle 10.2.0.4. I'm unable to locate the row successfully.
I issue the following to retrieve the information on the session locking the row. I could clearly see the session holding a DML lock.
SQLPLUS> select dbms_rowid.rowid_create (1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#, ROW_WAIT_BLOCK#, ROW_WAIT_ROW#)
from v$session where sid=1324;
USERNAME START_TIME STATUS SID SERIAL# SECONDS_IN_WAIT SQL_ID SQL_FULLTEXT TY
ALEX 08/25/11 20:36:30 INACTIVE 1199 30613 49 update test set CUSTOMER_ID=1235 where CUSTOMER_ID=11111 TM
I select the detailed information of the location of the locked row to retrieve the RowID, but I'm not getting back the expected result. I'm getting back values -1,0,0,0 for columns ROW_WAIT_OBJ#, ROW_WAIT_FILE#, ROW_WAIT_BLOCK#, and ROW_WAIT_ROW# respectively. I can't locate the row with the following:
select row_wait_obj#, row_wait_file#, row_wait_block#, row_wait_row#
from v$session where sid=1199;
SQLPLUS> 2
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
-1 0 0 0
How do I identify the locked updated row? I'm not able to in my test.
Any help would be appreciated.
Thanks

user12006502,
I am struggling to see EXACTLY what you are doing. You are showing output without showing the SQL statements that produce the output. Additionally, there may be foreign key or other constraints involved - as it stands, the best that I can do is guess, and I would prefer not to do that. For example, assume that your table name is T1 rather than TEST. What if, someone created an index like this:
CREATE UNIQUE INDEX T1_CUSTOMER ON T1(DECODE(CUSTOMER,'KEITH','0','JOHN','0',CUSTOMER));
{pre}
Then, in that same session executed the following without a commit:
INSERT INTO T1 VALUES ('JOHN',0);Now, in another session you enter the following:
UPDATE T1 SET CUSTOMER='KEITH' WHERE CUSTOMER='RON';Your session then hangs for seemingly no reason.
The person with the other session issues the following:
SELECT
  SID,
  TYPE,
  ID1,
  ID2,
  LMODE,
  REQUEST,
  BLOCK
FROM
  V$LOCK
WHERE
  SID=(SELECT SID FROM V$MYSTAT WHERE ROWNUM=1);
SID TY        ID1        ID2      LMODE    REQUEST      BLOCK
222 AE        100          0          4          0          0
222 TM      70568          0          3          0          0
222 TX      65554       1424          6          0          1It seems that the first session has a TX lock that is blocking another session, a TM lock that is NOT blocking another session, and an AE lock that is not blocking another session.  Now, in that session, the following is executed:
SELECT /*+ ORDERED */
  S.SID,
  S.STATUS,
  SW.EVENT,
  SW.WAIT_TIME WT,
  SW.STATE,
  SW.SECONDS_IN_WAIT S_I_W,
  S.SQL_ID,
  S.SQL_CHILD_NUMBER,
  S.ROW_WAIT_OBJ# OBJ#,
  S.ROW_WAIT_FILE# FILE#,
  S.ROW_WAIT_BLOCK# BLOCK#,
  S.ROW_WAIT_ROW# ROW#,
  SW.P1,
  SW.P2,
  SW.P3
FROM
  V$SESSION_WAIT SW,
  V$SESSION S
WHERE
  S.USERNAME IS NOT NULL
  AND SW.SID=S.SID
  AND SW.EVENT NOT LIKE '%SQL*Net%'
  AND SW.EVENT NOT IN ('Streams AQ: waiting for messages in the queue',
  'wait for unread message on broadcast channel');
SID STATUS   EVENT                                 WT STATE                    S_I_W SQL_ID        SQL_CHILD_NUMBER       OBJ#      FILE#     BLOCK#       ROW#         P1         P2         P3
223 ACTIVE   enq: TX - row lock contention          0 WAITING                    146 9gag614u0kvyx                0         -1          0          0          0 1415053316      65554       1424Notice in the above the -1 for the OBJ#.  You must provide the DDL and the DML for people to help you, otherwise you are forcing people to guess what you have done to set up the test case.
At the minimum, provide the DDL to recreate the table (and any indexes).  If you do not have the DML, you can use the following technique to retrieve it:
SET PAGESIZE 0
SET LONG 90000
SET LINESIZE 200
COLUMN OBJECT_DEF FORMAT A200
SPOOL 'GETMETA.SQL'
SELECT
  DBMS_METADATA.GET_DDL('TABLE',TABLE_NAME,OWNER) OBJECT_DEF
FROM
  DBA_TABLES
WHERE
  TABLE_NAME IN ('T1');When I executed the above for my test table T1, I saw the following:
  CREATE TABLE "TESTUSER"."T1"
   (    "CUSTOMER" VARCHAR2(6),
        "CUSTOMER_ID" NUMBER
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USER_DATA"That said, you could also have a trigger on the table that performs some action on an UPDATE, which could also cause problems.
Here is an example of what a full test case would look like:
DROP TABLE T1 PURGE;
CREATE TABLE T1 (
  CUSTOMER VARCHAR2(6),
  CUSTOMER_ID NUMBER);
INSERT INTO T1 VALUES('BETTY',1235);
INSERT INTO T1 VALUES('RON',0);
INSERT INTO T1 VALUES('BLAKE',0);
COMMIT;In session 1 you execute the following and receive confirmation that the update was successful:
UPDATE T1 SET CUSTOMER='KEITH' WHERE CUSTOMER='RON';
1 row updated.You check V$LOCK for this session and notice that the session has 3 locks, none of which are blocking:
SELECT
  SID,
  TYPE,
  ID1,
  ID2,
  LMODE,
  REQUEST,
  BLOCK
FROM
  V$LOCK
WHERE
  SID=(SELECT SID FROM V$MYSTAT WHERE ROWNUM=1);
SID TY        ID1        ID2      LMODE    REQUEST      BLOCK
223 AE        100          0          4          0          0
223 TM      70568          0          3          0          0
223 TX     262153       1493          6          0          0In another session, you attempt to drop the table and are greeted with an error:
DROP TABLE T1 PURGE;
DROP TABLE T1 PURGE
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expiredSo, you try the update statement - the same one performed in the first session:
UPDATE T1 SET CUSTOMER='KEITH' WHERE CUSTOMER='RON';The session hangs.
Back in the first session, you check the locks for the first session:
SELECT
  SID,
  TYPE,
  ID1,
  ID2,
  LMODE,
  REQUEST,
  BLOCK
FROM
  V$LOCK
WHERE
  SID=(SELECT SID FROM V$MYSTAT WHERE ROWNUM=1);
SID TY        ID1        ID2      LMODE    REQUEST      BLOCK
223 AE        100          0          4          0          0
223 TM      70568          0          3          0          0
223 TX     262153       1493          6          0          1Note the blocking lock.
Let's check the waits:
SELECT /*+ ORDERED */
  S.SID,
  S.STATUS,
  SW.EVENT,
  SW.WAIT_TIME WT,
  SW.STATE,
  SW.SECONDS_IN_WAIT S_I_W,
  S.SQL_ID,
  S.SQL_CHILD_NUMBER,
  S.ROW_WAIT_OBJ# OBJ#,
  S.ROW_WAIT_FILE# FILE#,
  S.ROW_WAIT_BLOCK# BLOCK#,
  S.ROW_WAIT_ROW# ROW#,
  SW.P1,
  SW.P2,
  SW.P3
FROM
  V$SESSION_WAIT SW,
  V$SESSION S
WHERE
  S.USERNAME IS NOT NULL
  AND SW.SID=S.SID
  AND SW.EVENT NOT LIKE '%SQL*Net%'
  AND SW.EVENT NOT IN ('Streams AQ: waiting for messages in the queue',
  'wait for unread message on broadcast channel');
SID STATUS   EVENT                                 WT STATE                    S_I_W SQL_ID        SQL_CHILD_NUMBER       OBJ#      FILE#     BLOCK#       ROW#         P1         P2         P3
222 ACTIVE   enq: TX - row lock contention          0 WAITING                    333 9gag614u0kvyx                1      70568          4      42601          1 1415053318     262153       1493Notice that the second session is waiting in an enqueue, the STATE is WAITING and the OBJ#, FILE#, BLOCK#, and ROW# all contain values.
Please provide a full test case, otherwise people may provide to you an answer that has nothing to do with the question that you are asking.
Notice in the above that the spaces were retained in my posted output from the SQL statements.  To do the same, place the following tag before and after your code sections (do not include the space before and after the brackets):
{ code }
Charles Hooper
Co-author of "Expert Oracle Practices: Oracle Database Administration from the Oak Table"
http://hoopercharles.wordpress.com/
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • ORA-01157: cannot identify/lock data file 13 - see DBWR trace file

    Hi all,
    I've a Oracle Database 11g Release 11.1.0.6.0 - 64bit Production With the Real Application Clusters option.
    I'm using ASM.
    Yesterday I added new disks and then I changed the +/etc/udev/rules.d/98-oracle.rules+ file.
    Now it looks like this (the bolded are the new ones):
    # Oracle Configuration Registry
    KERNEL=="emcpowerd1", OWNER="root", GROUP="oinstall", MODE="640", NAME="ocr"
    # Voting Disks
    KERNEL=="emcpowerr1", OWNER="oracle", GROUP="oinstall", MODE="640", NAME="voting"
    # Spfile ASM+
    KERNEL=="emcpowers1", OWNER="oracle", GROUP="dba", MODE="660", NAME="spfileASM"
    # ASM Devices
    KERNEL=="emcpowerj1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm0" #onlineredo asm disk
    KERNEL=="emcpowern1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm1" #data asm disk
    KERNEL=="emcpowerh1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm2" #data asm disk
    KERNEL=="emcpowerq1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm3" #data asm disk
    KERNEL=="emcpowere1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm4" #data asm disk
    KERNEL=="emcpowerg1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm5" #data asm disk
    KERNEL=="emcpowerl1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm6" #data asm disk
    KERNEL=="emcpowero1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm7" #data asm disk
    KERNEL=="emcpowerf1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm8" #data asm disk
    KERNEL=="emcpowerm1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm9" #data asm disk
    KERNEL=="emcpoweri1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm10" #data asm disk
    KERNEL=="emcpowerp1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm11" #data asm disk
    KERNEL=="emcpowerk1", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm12" #data asm disk
    KERNEL=="emcpowert", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm210" #data asm disk SATA
    KERNEL=="emcpowerc", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm211" #data asm disk SATA
    KERNEL=="emcpowerb", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm212" #data asm disk SATA
    KERNEL=="emcpowera", OWNER="oracle", GROUP="dba", MODE="660", NAME="asm213" #data asm disk SATA
    It's the same on both RAC nodes.
    The operating system, a RedHat 5.4, see the new devices (both nodes):
    ls -ltr /dev/asm*
    brw-rw---- 1 oracle dba 120, 16 May 18 10:03 /dev/asm212
    brw-rw---- 1 oracle dba 120, 304 May 18 10:03 /dev/asm210
    brw-rw---- 1 oracle dba 120, 32 May 18 10:03 /dev/asm211
    brw-rw---- 1 oracle dba 120, 0 May 18 10:03 /dev/asm213
    brw-rw---- 1 oracle dba 120, 209 May 18 10:05 /dev/asm1
    brw-rw---- 1 oracle dba 120, 81 May 18 13:40 /dev/asm8
    brw-rw---- 1 oracle dba 120, 97 May 18 13:40 /dev/asm5
    brw-rw---- 1 oracle dba 120, 193 May 18 13:40 /dev/asm9
    brw-rw---- 1 oracle dba 120, 161 May 18 13:40 /dev/asm12
    brw-rw---- 1 oracle dba 120, 241 May 18 13:40 /dev/asm11
    brw-rw---- 1 oracle dba 120, 177 May 18 13:40 /dev/asm6
    brw-rw---- 1 oracle dba 120, 225 May 18 13:40 /dev/asm7
    brw-rw---- 1 oracle dba 120, 65 May 18 13:40 /dev/asm4
    brw-rw---- 1 oracle dba 120, 129 May 18 13:40 /dev/asm10
    brw-rw---- 1 oracle dba 120, 257 May 18 13:40 /dev/asm3
    brw-rw---- 1 oracle dba 120, 113 May 18 13:40 /dev/asm2
    brw-rw---- 1 oracle dba 120, 145 May 18 13:40 /dev/asm0
    Both ASM instance see new devices:
    From ASM1
    SQL*Plus: Release 11.1.0.6.0 - Production on Tue May 18 13:43:10 2010
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    Connected to:
    Oracle Database 11g Release 11.1.0.6.0 - 64bit Production
    With the Real Application Clusters option
    SQL> select instance_name from v$instance;
    INSTANCE_NAME
    +ASM1
    SQL> select path from v$asm_disk;
    PATH
    /dev/asm212
    /dev/asm211
    /dev/asm213
    /dev/asm210
    /dev/asm1
    /dev/asm4
    /dev/asm5
    /dev/asm0
    /dev/asm12
    /dev/asm9
    /dev/asm2
    /dev/asm10
    /dev/asm7
    /dev/asm11
    /dev/asm3
    /dev/asm8
    /dev/asm6
    17 rows selected.
    SQL>
    From ASM2
    SQL*Plus: Release 11.1.0.6.0 - Production on Tue May 18 13:42:39 2010
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    Connected to:
    Oracle Database 11g Release 11.1.0.6.0 - 64bit Production
    With the Real Application Clusters option
    SQL> select instance_name from v$instance;
    INSTANCE_NAME
    +ASM2
    SQL> select path from v$asm_disk;
    PATH
    /dev/asm213
    /dev/asm211
    /dev/asm210
    /dev/asm212
    /dev/asm8
    /dev/asm7
    /dev/asm6
    /dev/asm11
    /dev/asm4
    /dev/asm12
    /dev/asm5
    /dev/asm9
    /dev/asm1
    /dev/asm3
    /dev/asm10
    /dev/asm2
    /dev/asm0
    17 rows selected.
    SQL>
    Then I created a disk group:
    CREATE DISKGROUP STORE EXTERNAL REDUNDANCY DISK '/dev/asm210';
    Then I created a new tablespace:
    CREATE TABLESPACE store DATAFILE '+STORE';
    I did all this operations from NODE1.
    What is happening now is that everytime I try to read something from new diskgroup FROM NODE2 I get the ORA-01157:
    ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
    ORA-01110: data file 13: '+STORE/evodb/datafile/store.256.719232707
    No problem to read from NODE1.
    The simple query on dba_data_file work from NODE1 and fails from NODE2 with the ORA-01157.
    I found this on the alert log:
    <msg time='2010-05-18T10:06:41.084+00:00' org_id='oracle' comp_id='rdbms'
    client_id='' type='UNKNOWN' level='16'
    module='' pid='11014'>
    <txt>Errors in file /u01/app/oracle/diag/rdbms/evodb/EVODB2/trace/EVODB2_smon_11014.trc:
    ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
    ORA-01110: data file 13: &apos;+STORE/evodb/datafile/store.256.719232707&apos;
    </txt>
    </msg>
    And this from the trace:
    Trace file /u01/app/oracle/diag/rdbms/evodb/EVODB2/trace/EVODB2_smon_11014.trc
    Oracle Database 11g Release 11.1.0.6.0 - 64bit Production
    With the Real Application Clusters option
    ORACLE_HOME = /u01/app/oracle/product/11.1.0/db1
    System name: Linux
    Node name: node02
    Release: 2.6.18-128.7.1.el5
    Version: #1 SMP Wed Aug 19 04:00:49 EDT 2009
    Machine: x86_64
    Instance name: EVODB2
    Redo thread mounted by this instance: 2
    Oracle process number: 19
    Unix process pid: 11014, image: oracle@node02 (SMON)
    *** 2010-05-18 10:06:41.084
    *** SESSION ID:(151.1) 2010-05-18 10:06:41.084
    *** CLIENT ID:() 2010-05-18 10:06:41.084
    *** SERVICE NAME:(SYS$BACKGROUND) 2010-05-18 10:06:41.084
    *** MODULE NAME:() 2010-05-18 10:06:41.084
    *** ACTION NAME:() 2010-05-18 10:06:41.084
    DDE rules only execution for: ORA 1110
    ----- START Event Driven Actions Dump ----
    ---- END Event Driven Actions Dump ----
    ----- START DDE Actions Dump -----
    ----- DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (Async) -----
    Successfully dispatched
    ----- (Action duration in csec: 0) -----
    ----- END DDE Actions Dump -----
    *** 2010-05-18 10:06:41.084
    SMON: following errors trapped and ignored:
    ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
    ORA-01110: data file 13: '+STORE/evodb/datafile/store.256.719232707'
    Any suggestion about how to solve the problem?
    Thanks in advance!
    Samuel

    I didn't understand what do you mean with thread...
    But I think you found the problem
    Initialization files of both ASM instance are: SPFILE='/dev/spfileASM'
    that SPFILE is (common for both):
    +ASM2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
    +ASM2.asm_diskgroups='ONLINELOG','ARCHIVELOG','DATA'
    +ASM1.asm_diskgroups='ONLINELOG','ARCHIVELOG','DATA','STORE'#Manual Mount
    *.asm_diskstring='/dev/asm*'
    *.cluster_database=true
    *.diagnostic_dest='/u01/app/oracle'
    +ASM1.instance_number=1
    +ASM2.instance_number=2
    *.instance_type='asm'
    *.large_pool_size=12M
    +ASM1.local_listener='LISTENER_ASM'
    +AC
    Then I executed another query:
    From ASM1
    SQL> select instance_name from v$instance;
    INSTANCE_NAME
    +ASM1
    SQL> select name, state from v$asm_diskgroup;
    NAME STATE
    ARCHIVELOG MOUNTED
    DATA MOUNTED
    ONLINELOG MOUNTED
    STORE MOUNTED
    SQL>
    From ASM2
    SQL> select instance_name from v$instance;
    INSTANCE_NAME
    +ASM2
    SQL> select name, state from v$asm_diskgroup;
    NAME STATE
    ARCHIVELOG MOUNTED
    DATA MOUNTED
    ONLINELOG MOUNTED
    STORE DISMOUNTED
    SQL>
    Than the question is:
    how can I mount the disk group STORE also on ASM2?
    I think the problems is into the spfile lines:
    +ASM2.asm_diskgroups='ONLINELOG','ARCHIVELOG','DATA'
    +ASM1.asm_diskgroups='ONLINELOG','ARCHIVELOG','DATA','STORE'
    How can I change the +ASM2.asm_diskgroups value?
    Thanks

  • How To find rowid of Locked row.

    Hello,
    can somebody tell me the "select statement", how to find the rowid of a locked row, which is locked by "select for update" and also the rowid of a row which is going to be updated by "update statement".

    check out v$session and the following columns.
    It is documented here
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch3171.htm#1122127
    ROW_WAIT_OBJ#
    NUMBER
    Object ID for the table containing the ROWID specified in ROW_WAIT_ROW#
    ROW_WAIT_FILE#
    NUMBER
    Identifier for the datafile containing the ROWID specified in ROW_WAIT_ROW#. This column is valid only if the session is currently waiting for another transaction to commit and the value of ROW_WAIT_OBJ# is not -1.
    ROW_WAIT_BLOCK#
    NUMBER
    Identifier for the block containing the ROWID specified in ROW_WAIT_ROW#. This column is valid only if the session is currently waiting for another transaction to commit and the value of ROW_WAIT_OBJ# is not -1.
    ROW_WAIT_ROW#
    NUMBER
    The current ROWID being locked. This column is valid only if the session is currently waiting for another transaction to commit and the value of ROW_WAIT_OBJ# is not -1.

  • Re: Transactions and Locking Rows for Update

    Dale,
    Sounds like you either need an "optimistic locking" scheme, usually
    implemented with timestamps at the database level, or a concurrency manager.
    A concurrency manager registers objects that may be of interest to multiple
    users in a central location. It takes care of notifying interested parties
    (i.e., clients,) of changes made to those objects, using a "notifier" pattern.
    The optimistic locking scheme is relatively easy to implement at the
    database level, but introduces several problems. One problem is that the
    first person to save their changes "wins" - every one else has to discard
    their changes. Also, you now have business policy effectively embedded in
    the database.
    The concurrency manager is much more flexible, and keeps the policy where
    it probably belongs. However, it is more complex, and there are some
    implications to performance when you get to the multiple-thousand-user
    range because of its event-based nature.
    Another pattern of lock management that has been implemented is a
    "key-based" lock manager that does not use events, and may be more
    effective at managing this type of concurrency for large numbers of users.
    There are too many details to go into here, but I may be able to give you
    more ideas in a separate note, if you want.
    Don
    At 04:48 PM 6/5/97 PDT, Dale "V." Georg wrote:
    I have a problem in the application I am currently working on, which it
    seems to me should be easily solvable via appropriate use of transactions
    and database locking, but I'm having trouble figuring out exactly how to
    do it. The database we are using is Oracle 7.2.
    The scenario is as follows: We have a window where the user picks an
    object from a dropdown list. Some of the object's attributes are then
    displayed in that window, and the user then has the option of editing
    those attributes, and at some point hitting the equivalent of a 'save'button
    to write the changes back to the database. So far, so good. Now
    introduce a second user. If user #1 and user #2 both happen to pull up
    the same object and start making changes to it, user #1 could write back
    to the database and then 15 seconds later user #2 could write back to the
    database, completely overlaying user #1's changes without ever knowing
    they had happened. This is not good, particularly for our application
    where editing the object causes it to progress from one state to the next,
    and multiple users trying to edit it at the same time spells disaster.
    The first thing that came to mind was to do a select with intent to update,
    i.e. 'select * from table where key = 'somevalue' with update'. This way
    the next user to try to select from the table using the same key would not
    be able to get it. This would prevent multiple users from being able to
    pull the same object up on their screens at the same time. Unfortunately,
    I can think of a number of problems with this approach.
    For one thing, the lock is only held for the duration of the transaction, so
    I would have to open a Forte transaction, do the select with intent to
    update, let the user modify the object, then when they saved it back again
    end the transaction. Since a window is driven by the event loop I can't
    think of any way to start a transaction, let the user interact with the
    window, then end the transaction, short of closing and re-opening the
    window. This would imply having a separate window specifically for
    updating the object, and then wrapping the whole of that window's event
    loop in a transaction. This would be a different interface than we wanted
    to present to the users, but it might still work if not for the next issue.
    The second problem is that we are using a pooled DBSession approach
    to connecting to the database. There is a single Oracle login account
    which none of the users know the password to, and thus the users
    simply share DBSession resources. If one user starts a transaction
    and does a select with intent to update on one DBSession, then another
    user starts a transaction and tries to do the same thing on the same
    DBSession, then the second user will get an error out of Oracle because
    there's already an open transaction on that DBSession.
    At this point, I am still tossing ideas around in my head, but after
    speaking with our Oracle/Forte admin here, we came to the conclusion
    that somebody must have had to address these issues before, so I
    thought I'd toss it out and see what came back.
    Thanks in advance for any ideas!
    Dale V. Georg
    Indus Consultancy Services [email protected]
    Mack Trucks, Inc. [email protected]
    >
    >
    >
    >
    ====================================
    Don Nelson
    Senior Consultant
    Forte Software, Inc.
    Denver, CO
    Corporate voice mail: 510-986-3810
    aka: [email protected]
    ====================================
    "I think nighttime is dark so you can imagine your fears with less
    distraction." - Calvin

    We have taken an optimistic data locking approach. Retrieved values are
    stored as initial values; changes are stored seperately. During update, key
    value(s) or the entire retieved set is used in a where criteria to validate
    that the data set is still in the initial state. This allows good decoupling
    of the data access layer. However, optimistic locking allows multiple users
    to access the same data set at the same time, but then only one can save
    changes, the rest would get an error message that the data had changed. We
    haven't had any need to use a pessimistic lock.
    Pessimistic locking usually involves some form of open session or DBMS level
    lock, which we haven't implemented for performance reasons. If we do find the
    need for a pessimistic lock, we will probably use cached data sets that are
    checked first, and returned as read-only if already in the cache.
    -DFR
    Dale V. Georg <[email protected]> on 06/05/97 03:25:02 PM
    To: Forte User Group <[email protected]> @ INTERNET
    cc: Richards* Debbie <[email protected]> @ INTERNET, Gardner*
    Steve <[email protected]> @ INTERNET
    Subject: Transactions and Locking Rows for Update
    I have a problem in the application I am currently working on, which it
    seems to me should be easily solvable via appropriate use of transactions
    and database locking, but I'm having trouble figuring out exactly how to
    do it. The database we are using is Oracle 7.2.
    The scenario is as follows: We have a window where the user picks an
    object from a dropdown list. Some of the object's attributes are then
    displayed in that window, and the user then has the option of editing
    those attributes, and at some point hitting the equivalent of a 'save' button
    to write the changes back to the database. So far, so good. Now
    introduce a second user. If user #1 and user #2 both happen to pull up
    the same object and start making changes to it, user #1 could write back
    to the database and then 15 seconds later user #2 could write back to the
    database, completely overlaying user #1's changes without ever knowing
    they had happened. This is not good, particularly for our application
    where editing the object causes it to progress from one state to the next,
    and multiple users trying to edit it at the same time spells disaster.
    The first thing that came to mind was to do a select with intent to update,
    i.e. 'select * from table where key = 'somevalue' with update'. This way
    the next user to try to select from the table using the same key would not
    be able to get it. This would prevent multiple users from being able to
    pull the same object up on their screens at the same time. Unfortunately,
    I can think of a number of problems with this approach.
    For one thing, the lock is only held for the duration of the transaction, so
    I would have to open a Forte transaction, do the select with intent to
    update, let the user modify the object, then when they saved it back again
    end the transaction. Since a window is driven by the event loop I can't
    think of any way to start a transaction, let the user interact with the
    window, then end the transaction, short of closing and re-opening the
    window. This would imply having a separate window specifically for
    updating the object, and then wrapping the whole of that window's event
    loop in a transaction. This would be a different interface than we wanted
    to present to the users, but it might still work if not for the next issue.
    The second problem is that we are using a pooled DBSession approach
    to connecting to the database. There is a single Oracle login account
    which none of the users know the password to, and thus the users
    simply share DBSession resources. If one user starts a transaction
    and does a select with intent to update on one DBSession, then another
    user starts a transaction and tries to do the same thing on the same
    DBSession, then the second user will get an error out of Oracle because
    there's already an open transaction on that DBSession.
    At this point, I am still tossing ideas around in my head, but after
    speaking with our Oracle/Forte admin here, we came to the conclusion
    that somebody must have had to address these issues before, so I
    thought I'd toss it out and see what came back.
    Thanks in advance for
    any
    ideas!
    Dale V. Georg
    Indus Consultancy Services [email protected]
    Mack Trucks, Inc. [email protected]
    ------ Message Header Follows ------
    Received: from pebble.Sagesoln.com by notes.bsginc.com
    (PostalUnion/SMTP(tm) v2.1.9c for Windows NT(tm))
    id AA-1997Jun05.162418.1771.334203; Thu, 05 Jun 1997 16:24:19 -0500
    Received: (from sync@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9) id
    NAA11825 for forte-users-outgoing; Thu, 5 Jun 1997 13:47:58 -0700
    Received: (from uucp@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9) id
    NAA11819 for <[email protected]>; Thu, 5 Jun 1997 13:47:56 -0700
    Received: from unknown(207.159.84.4) by pebble.sagesoln.com via smap (V1.3)
    id sma011817; Thu Jun 5 13:47:43 1997
    Received: from tes0001.macktrucks.com by relay.macktrucks.com
    via smtpd (for pebble.sagesoln.com [206.80.24.108]) with SMTP; 5 Jun
    1997 19:35:31 UT
    Received: from dale by tes0001.macktrucks.com (SMI-8.6/SMI-SVR4)
    id QAA04637; Thu, 5 Jun 1997 16:45:51 -0400
    Message-ID: <[email protected]>
    Priority: Normal
    To: Forte User Group <[email protected]>
    Cc: "Richards," Debbie <[email protected]>,
    "Gardner," Steve <[email protected]>
    MIME-Version: 1.0
    From: Dale "V." Georg <[email protected]>
    Subject: Transactions and Locking Rows for Update
    Date: Thu, 05 Jun 97 16:48:37 PDT
    Content-Type: text/plain; charset=US-ASCII; X-MAPIextension=".TXT"
    Content-Transfer-Encoding: quoted-printable
    Sender: [email protected]
    Precedence: bulk
    Reply-To: Dale "V." Georg <[email protected]>

  • How to find rowid of locked rows?

    Hello All,
    I have the "before update trigger" I want to know the rowid of all the locked row before update so that I dont try to update the same row which is locked by some other user. In Ask Tom forum I have seen how to know the rowid of locked row, but it will work only when Some body got hanged in that Perticular row while trying to update it. I dont want the User to get hanged, for that I want to user before update trigger. Help me.

    I believe this is a duplicate of another question in this forum
    How to find out rowid of locked row
    which I answered.
    Justin

  • How to identify migrated rows on a table

    Hi, folks,
    I'm wondering how to identify migrated rows on a table.
    I understand that ANALYZE generates data into CHAINED_ROWS. The Oracle document implies that this table has both CHAINED ROWS and MIGRATED ROWS. FYI:
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/general.htm#sthref1881
    But how can I tell migrated rows from chained rows.
    Thanks!
    Alex

    im also not looking to ExporttoExcel feature on ADF just copy all the records displayed on a table
    im also not looking to ExporttoExcel feature on ADF just copy all the records displayed on a table ,
    Hi you can set the property( exportedRows) of exportListener
    you can limit the number of rows to download
    chekout documentaion
    ADF RichClient API - af:exportCollectionActionListener

  • TablePopin: Identifying the row where an action of a popin occured

    Hi,
    i want to use the TablePopin UI-element. The popin can be opened for more than one row at the same time. In the popin some actions might occur (like actions of buttons etc.) My problem is how to identify the row where the action occured. I saw a solution in the wiki using some modifcation of the actions ( https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/how%2bto%2bimplement%2btablepopin ). It works quite good. However, it will become a pain if you have not only one table but various tables with popin-elements and if you have not only one action but various actions. So, i wonder if there is any easier way to identify the specific row an action occured.

    hi
    please go through this link
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/how%2bto%2bimplement%2btablepopin
    Regards
    Ruturaj

  • How to find the LOCKED ROWS in a table?

    Not locked objects, but for a table the locked rows.

    Check below links :
    http://www.jlcomp.demon.co.uk/faq/locked_rows.html
    How to find the locked row.
    who are waiting for same record?
    HTH
    Girish Sharma

  • Java.sql.SQLException: ORA-01157: cannot identify/lock data file 7 - see DB

    I am deploying my application components on Oracle RAC database, when i install my app component i will run a script which creates a user and tablespace on bot rac-nodes(node1 and node2)
    as database is clustered, the user are created on 2 nodes and tablespace is stored in a shared location for two rac nodes
    i am able to successfully run my script on rac-node1 and and installed my component and when i started installing the app component on node2 getting error
    java.sql.SQLException: ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
    ORA-01110: data file 7: '/db/db/db/ora10g/10.2.0/admin/dbadmin_01.dbf'
    ORA-06512: at "ADMIN.XL_SP_DBCHECK", line 48
    ORA-06512: at line 1
    "dbadmin_01.dbf is the custom tablespace which created by me"
    i a mgetting error while installing the app component on rac-node2

    You should not create database files outside of the ASM.
    I'm not sure you can move the datafile, I would export the data from the tablespace (if there is data you need there), delete the tablespace and recreate it in the ASM, then import the data back.
    If you want to move the datafile, you can try using RMAN (from node1).
    First connect to the database with sqlplus and execute:
    alter tablespace <tbs_name> offline;Then start RMAN: rman target /
    BACKUP AS COPY DATAFILE '<file>' FORMAT '+<ASM_DG>';Then in sqlplus, execute:
    alter tablespace <tbs_name> online;I'm not sure it will work, and I hope I got the commands right because I can't check it right now.
    Good luck
    Liron Amitzi
    Senior DBA consultant
    [www.dbsnaps.com]
    [www.orbiumsoftware.com]

  • Java.sql.SQLException: ORA-01157: cannot identify/lock data file : PLz Help

    My datafiles are in ASM file system, however the only one file ACIPEN_DATA is the one, which is not in ASM file system, and this the file which is in concern.
    We are getting the following exception in the lxkratgas1.lex1.lexmark.com when connecting to ACIPEN_DATA.
    This exception is coming up sometimes and the sometimes the file is getting processed successfully
    Caused by: java.sql.SQLException: ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
    ORA-01110: data file 9: '/oracle/SE/product/10.2.0/db_1/dbs/ACIPEN_DATA'
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
    at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:278)
    at atg.adapter.gsa.SQLStatement.executeUpdate(SQLStatement.java:725)
    at atg.adapter.gsa.Table.insert(Table.java:1378)
    at atg.adapter.gsa.GSAItemDescriptor.addItem(GSAItemDescriptor.java:6272)
    ... 61 more
    ====================================================================
    We have checked the datafile, it is absolutely online.
    Can some expert jump in and resolve this issue Please.

    01157, 00000, "cannot identify/lock data file %s - see DBWR trace file"
    // *Cause:  The background process was either unable to find one of the data
    //         files or failed to lock it because the file was already in use.
    //         The database will prohibit access to this file but other files will
    //         be unaffected. However the first instance to open the database will
    //         need to access all online data files. Accompanying error from the
    //         operating system describes why the file could not be identified.
    // *Action: Have operating system make file available to database. Then either
    //         open the database or do ALTER SYSTEM CHECK DATAFILES.is this a RAC database?

  • ABAP / Query to Identify Duplicate Rows in Cube

    Dear Experts,
    We have a situation were some of our Cubes (due to compression and varying levels of forceful reloads) now contain duplicate rows.
    What I need to know is :-
    1) Is there a way to identify duplicate rows where one of the characteristics are different but all key figures are identical.
    2) If so what is easier to achieve, ABAP routine/program or Query
    3) If ABAP suggestions on how to code such
    4) If query same.
    What I need it to do is tell me which ClaimNo record (Primary Key) has duplicates and what characteristic has caused it.
    I know I am asking for a lot but I really need to get this resolved as it's causing mayhem and trying to pinpoint these records is both time consuming and painful.  What we are looking to do with the records is establish how they became duplicated so we can prevent this happening in the future.
    Your help as always much appreciated.
    Regards
    Craig
    Message was edited by: Craig Armstead

    Hi Craig,
    My previous answer can find out what all cubes and data targets have been loaded based on a request.
    Actually for your query. The following information will be surely useful.
    tables: /BIC/**(source ) , /BIC**(target)
    parameter : fieldname like /BIC/****-fieldname ( In ur case the it can be primary key or Duplicate entry )
    data: itab_source  like /BIC/*** occurs 0 with header line,
          itab_destination like /BIC/*** occurs 0 with header line.
    data: wa_itab_destination like line of itab_destination.
    select *
      from /BIC/*****
      into corresponding fields of table itab_source.
      where fieldname = fieldname.
    ******Include your piece of code which is for deleting records
    Delete adjacent duplicates from itab_source comparing characteristic ( i.e  duplicate characteristic you specified)
    ****Use this to delete the ODS Data before writing into it
    call function 'RSDRI_ODSO_DELETE_RFC'
      exporting
        i_odsobject  = 'ODS Name'
        i_delete_all = 'X'.
    if sy-subrc = 0.
      loop at itab_source.
        move-corresponding itab_source to itab_destination.
        append itab_destination.
      endloop.
      modify /BIC/*** from table itab_destination[].   “target being written from itab.
      commit work.
    endif.
    Please Reward points if this helps really.
    Thanks,
    Srinivas.

  • ORA-01157: cannot identify/lock data file error in standby database.

    Hi,
    i have a primary database and standby database (11.2.0.1.0) running in ASM with different diskgroup names. I applied an incremental backup on standby database to resolve archive log gap and generated a controlfile for standby in primary database and restored the controlfile in standby database.But when i started the MRP process its not starting and thows error in alert log ORA-01157: cannot identify/lock data file. When i queried the standby database file it shows the location on primary database datafiles names not the standby database.
    PRIMARY DATABASE
    SQL> select name from v$datafile;
    NAME
    +DATA/oradb/datafile/system.256.788911005
    +DATA/oradb/datafile/sysaux.257.788911005
    +DATA/oradb/datafile/undotbs1.258.788911005
    +DATA/oradb/datafile/users.259.788911005
    STANDBY DATABASE
    SQL> select name from v$datafile;
    NAME
    +STDBY/oradb/datafile/system.256.788911005
    +STDBY/oradb/datafile/sysaux.257.788911005
    +STDBY/oradb/datafile/undotbs1.258.788911005
    +STDBY/oradb/datafile/users.259.788911005
    The Actual physical location of standby database files in ASM in standby server is shown below
    ASMCMD> pwd
    +STDBY/11gdb/DATAFILE
    ASMCMD>
    ASMCMD> ls
    SYSAUX.259.805921967
    SYSTEM.258.805921881
    UNDOTBS1.260.805922023
    USERS.261.805922029
    ASMCMD>
    ASMCMD> pwd
    +STDBY/11gdb/DATAFILE
    i even tried to rename the datafiles in standby database but it throws error
    ERROR at line 1:
    ORA-01511: error in renaming log/data files
    ORA-01275: Operation RENAME is not allowed if standby file management is
    automatic.
    Regards,
    007

    Hi saurabh,
    I tried to rename the datafiles in standby database after restoring it throws the below error
    ERROR at line 1:
    ORA-01511: error in renaming log/data files
    ORA-01275: Operation RENAME is not allowed if standby file management is
    automatic.
    Also in my pfile i have mentioned the below parameters
    *.db_create_file_dest='+STDBY'
    *.db_domain=''
    *.db_file_name_convert='+DATA','+STDBY'
    *.db_name='ORADB'
    *.db_unique_name='11GDB'
    Regards,
    007

  • How skip on locked rows

    hello
    please guide me
    sqlserver select as READPAST hint that cause skip on locked rows that another transaction locked it
    For example, assume table T1 contains a single integer column with the values of 1, 2, 3, 4, 5. If transaction A changes the value of 3 to 8 but has not yet committed, a SELECT * FROM T1 (READPAST) yields values 1, 2, 4, 5
    when i use oracle. how i can skip rows that another transaction locked it when i use "for update" in select statement?
    thanks

    There is some undocumented syntax "FOR UPDATE SKIP LOCKED" that does exactly this. Problem is that it is not supported and Oracle is free to remove or change the functionality.
    The other option is to program it like this:
    (pseudocode, not tested)
    declare
      l_pk_array is table of t1.<pk column>%type index by pls_integer;
      cursor c is select <pk column> from t1;
    begin
      open c;
      loop
        fetch c bulk collect into l_pk_array limit 100
        for i in 1..l_pk_array.count
        loop
          declare
            e_row_locked exception;
            pragma exception_init (e_row_locked,-54);
            <other arrays>
          begin
            select <other columns>
              into <other arrays>
              from t1
             where t1.pk_column = l_pk_array(i)
                   for update nowait
            <your code>
          exception
          when no_data_found then
            null;
          when e_row_locked then
            null;
          end;
        end loop
        <maybe a forall statement here>
      end loop
      close c;
    end;Regards,
    Rob.

  • JBO-28004: Could not lock row in control table for table null

    hello.
    we have deployed two application on a server.
    both have code like this:
         select = "SELECT * from tab";
    vo = e.getDBTransaction().createViewObjectFromQueryStmt(select);
                        vo.executeQuery();
                        RowSet rs = vo.getRowSet();
                        if(rs != null)
                             Row lastRow = vo.getRowSet().last();
    the last line throws sometimes an exception (.last()).
    JBO-28004: Could not lock row in control table for table null
    at oracle.jbo.PCollException.throwException(PCollException.java:34)
    at oracle.jbo.pcoll.OraclePersistManager.commit(OraclePersistManager.java:229)
    at oracle.jbo.pcoll.OraclePersistManager.dropTable(OraclePersistManager.java:499)
    at oracle.jbo.pcoll.OraclePersistManager.createTable(OraclePersistManager.java:692)
    at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1492)
    at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:542)
    at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:657)
    at oracle.jbo.pcoll.PCollection.passivateLRULeafNode(PCollection.java:351)
    at oracle.jbo.pcoll.PCollection.checkActiveLeafLimit(PCollection.java:404)
    at oracle.jbo.pcoll.PCollection.nodeRecentlyUsed(PCollection.java:252)
    at oracle.jbo.pcoll.PCollNode.<init>(PCollNode.java:73)
    at oracle.jbo.pcoll.PCollNode.checkForSplit(PCollNode.java:1553)
    at oracle.jbo.pcoll.PCollNode.addObject(PCollNode.java:1622)
    at oracle.jbo.pcoll.PCollNode.addObject(PCollNode.java:1610)
    at oracle.jbo.pcoll.PCollection.addElement(PCollection.java:753)
    at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:1247)
    at oracle.jbo.server.QueryCollection.getRowCount(QueryCollection.java:1065)
    at oracle.jbo.server.ViewRowSetImpl.getRowCount(ViewRowSetImpl.java:1444)
    at oracle.jbo.server.ViewRowSetIteratorImpl.last(ViewRowSetIteratorImpl.java:1183)
    at oracle.jbo.server.ViewRowSetImpl.last(ViewRowSetImpl.java:2246)
    at oracle.jbo.server.ViewObjectImpl.last(ViewObjectImpl.java:4352)
    at com.omv.emis.extemis.bc.EmsFreigabeImpl.checkFullMonth(EmsFreigabeImpl.java:327)
    at com.omv.emis.extemis.bc.EmsFreigabeImpl.doDML(EmsFreigabeImpl.java:293)
    at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:3410)
    at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2274)
    at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2216)
    at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1511)
    at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1677)
    at EmsFreigabeView1_BrowseEdit._jspService(_EmsFreigabeView1__BrowseEdit.java:134)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:563)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:309)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    this exception does not occur every time just sometimes.
    (no other user/application uses the specific table, so there is no other lock)
    maybe someone knows an error source.
    thx in advance.

    Gina:
    Could you run you app with diagnostic turned on?
    If you're launching your middle tier from command prompt, you should invoke java as
    java -Djbo.debugoutput=console ...
    If you're launching your middle tier from w/i JDev..
    1. Select the project.
    2. Do right mouse click and select "Project Settings..."
    3. On the Settings dialog, select Configurations/Runner.
    4. In the righthand side pane, you should see a textbox for "Java
    Options". Please add the following JVM switch:
    -Djbo.debugoutput=console
    Then, rerun. The run command should include
    -Djbo.debugoutput=console as in
    "D:\JDev9i\jdk\bin\javaw.exe" -Djbo.debugoutput=console -classpath ...
    Then, you should see a lot of diagnostic messages. It will also give you complete stack trace including that of the detail exception.
    When you get the exception diagnostic output, please post that to this thread.
    Thanks.
    Sung

  • -01157 cannot identify/lock datafile string - see DBWR trace file

    HI,
    -01157 cannot identify/lock datafile string - see DBWR trace file
    ora -1110 errors are throwing when iam going to startup

    872565 wrote:
    HI,
    -01157 cannot identify/lock datafile string - see DBWR trace file
    ora -1110 errors are throwing when iam going to startupDid you lookup this error on the Internet ??
    What does the alert_log tell you??
    The Google answer on this is:
    ORA-01157:cannot identify/lock data file string - see DBWR trace file
    Cause:     The background process was either unable to find one of the data files or failed to lock it because the file was already in use. The database will prohibit access to this file but other files will be unaffected. However the first instance to open the database will need to access all online data files. Accompanying error from the operating system describes why the file could not be identified.
    Action:     Have operating system make file available to database. Then either open the database or do ALTER SYSTEM CHECK DATAFILES.
    Edit: It is recommended to post database version and OS version also, including more information.
    This post of you looks like:
    Hi
    My Car is not starting. It is smoking from behind and making the weirdest sounds
    Please adviceCheers
    FJFranken
    Edited by: fjfranken on 19-jul-2011 5:33

Maybe you are looking for