Exclusive locks on IFS tables
We have a servlet application that accesses IFS 9.0.1.1 via the IFS API.
We are having a problem where sessions are putting an exclusive lock on certain SYS_LOBnnnnnnnnn objects which (in turn) prevents other sessions from gaining an exclusive lock on the ODM_DOCUMENT table.
Today, the following statement (issued by some IFS API call) was causing an exclusive lock which was never released:
update odm_document set READBYOWNER := 1 where id = :2
This statement put an exclusive lock on the SYS_LOB0000046893C00006$$ object and that lock was never released and we had to kill the session.
Any guidance would be appreciated. Thanks.
The mappings when run does acquire an exclusive lock on the target table and yes it does only when it is run in set based mode, this is absolutely true. If you run a mapping in set based mode and loading some data in millions it takes an exclusive lock on the target table. You can verify it by querying the v$lock table, or by using the session browser in any of SQL querying tools.
The problem can be overcome by running in row based mode as suggested by you, but when data volume is huge I dont think the row based mode gives a satisfactory preformance.
Anyways, thanks for all your suggestions. Lets see if I can find any other way out.
Similar Messages
-
Updating a row in table exclusive lock on entire table
Hi
We have table master table and few child tables .
when we try to update a row in master table , it is locking entire table
i.e seems update process holding exclusive lock on entire table
it is not allowing any furthur update to that table
Could you please tell me what could be the problem for that
Thanks,
- AKDoes the table has primary key - foreign key relationship? Try disabling the constraint and see if it works. If it works then it is about unindexed foreign key issue.
-
Monitor exclusive lock on a table and send notification email through EM
Hi,
I have Oracle10g and EM10G running on different servers.
now one of my plsql code creates an exclusive lock on one of my tables.
i want to monitor this exclusive lock on this table through the EM. and when the exclusive lock on the table is continuing for more than 1 hour, i want an email notification sent to me by the EM.
How can i do this?
Can someone help me achieve this above situation.
Thanks.
Philip.One of the nice about OEM is that a lot of the things are self explanatory. E.g. I never read docs to set up our first user defined metrics. It is really just to dive in there. Define a metric and the sql you want to use for monitoring the lock. Then you just go and create email notification for this when it hits warning or critical treshold.
-
GTT table getting Row Exclusive lock
I have a procedure which loads a table which is used for reporting.
Currently it is a single process which picks up most of the data after joining 2-3 big tables(around 70-80GB) and then loading the main table.
The joins are on PI and also partitions are also being used. Then a lot of updates are done on the main table to update other columns which are being picked from different tables.
As the processing is happening on huge amount of data(around 1M), so processing is taking a lot of time.
This process is taking around 40-45 minutes.
I am planning to use parallelism to run it in 75 sessions. So the initial big insert will be faster and later on all the updates will be done on smaller chunks which will benefit the performance.
I planned to use GTT table so that i dont have to create 75 temp tables for each sessions.
But while using GTT table(ON COMMIT DELETE ROWS) in parallel sessions, i am seeing that the GTT table is getting Row Exclusive lock and the time taken by overall process is increasing by lot.
So i tested by using 75 temp tables. There i saw that the performance has increased by lots as assumed initially.
Please let me know if there is any other way or how to remove the locks on GTT table.First you should question why you think you need 75 GTT.
Also your question contains no useful information
(no four digit version of Oracle, no OS, no number of processors) , this paragrah
Currently it is a single process which picks up most of the data after joining 2-3 big tables(around 70-80GB) and then loading the main table.
The joins are on PI and also partitions are also being used. Then a lot of updates are done on the main table to update other columns which are being picked from different tables.
As the processing is happening on huge amount of data(around 1M), so processing is taking a lot of time.
This process is taking around 40-45 minutes.tells nothing,
so basically your questions boils down to
- Hey I come from a sqlserver background (this is just an educated guess), how can I find a workaround to wreck Oracle to make it work like sqlserver.
75 parallel sessions on say 4 to 8 processors is a very bad idea, as these sessions will be simple competing for resources.
Also a row exclusive lock is just that: a row level lock. This isn't a problem, usually.
Sybrand Bakker
Senior Oracle DBA -
How to find out the locks in the table
Any query anybody have to find out locks in any table.
Here is a version with SID and serial# data:
set linesize 150;
set head on;
col sid_serial form a13
col ora_user for a15;
col object_name for a35;
col object_type for a10;
col lock_mode for a15;
col last_ddl for a8;
col status for a10;
break on sid_serial;
SELECT l.session_id||','||v.serial# sid_serial,
l.ORACLE_USERNAME ora_user,
o.object_name,
o.object_type,
DECODE(l.locked_mode,
0, 'None',
1, 'Null',
2, 'Row-S (SS)',
3, 'Row-X (SX)',
4, 'Share',
5, 'S/Row-X (SSX)',
6, 'Exclusive',
TO_CHAR(l.locked_mode)
) lock_mode,
o.status,
to_char(o.last_ddl_time,'dd.mm.yy') last_ddl
FROM dba_objects o, gv$locked_object l, v$session v
WHERE o.object_id = l.object_id
and l.SESSION_ID=v.sid
order by 2,3; -
Lock escalation on table with no key/index
Hi,
I've got the table with single column only (int) and no indexes nor pk/uq, just auto-created statistics.
now, in transaction, there is a command: SELECT <COL> FROM <TABLE> WITH (ROWLOCK UPDLOCK) WHERE <COL>=100
Table has variable num of records but it doesn't go over 200k, usually below 60k. Column values are mostly unique but can be duplicated in minor portion.
Question 1: when this select executes, what will be locked - row, page or entire table?
Question 2: if I have PK/UQ/index and execute same SELECT as above, what will locked then?Hi,
1. Please note that every lock taken by sql server has some memory associated with it so more the number of locks more memory it will use. To avoid this unnecessary usage sql server uses Lock escalation when it deems necessary that it would be better to
lock whole table instead of locking whole row.
There is no use here using UPDLOCK with select statement, it would just change locking behavior and would force U lock lets see example
I have a table having structure as
CREATE TABLE [dbo].[Logging](
[Id] [int] IDENTITY(1,1) NOT NULL,
[c1] [char](50) NOT NULL DEFAULT ('SOME MORE DATA')
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
it ha some 20 K records now lets concentrate on query which you asked
begin transaction
select @@SPID,ID,C1 from dbo.Logging with (ROWLOCK,UPDLOCK) where id=12
--commit
To see locks taken by this query we would run below query in other SSMS window
Select
resource_type,
request_mode,
request_status,
request_session_id
from sys.dm_tran_locks
where resource_database_id=11--databse ID
below is result
You can see update lock bein taken on row and IX intent exclusive lock on object that is table and shared lock on database.
Now if we change the query to scan whole table like below
Now you can see Only exclusive lock is taken on whole table instead of taking on every row. If you see the query every row has predicate 'some more data' so ultimately a table scan would be required .
Above is assuming default Isolation level
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
Lock object for table KNVP and KNVK
Hello Friends,
Can you please tell me the standard lock object for the table KNVP and KNVK.
Thank and regards,
KuldeepHi
see this and do accordingly
Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
SAP Provide three type of Lock objects.
- Read Lock(Shared Locked)
protects read access to an object. The read lock allows other transactions read access but not write access to
the locked area of the table
- Write Lock(exclusive lock)
protects write access to an object. The write lock allows other transactions neither read nor write access to
the locked area of the table.
- Enhanced write lock (exclusive lock without cumulating)
works like a write lock except that the enhanced write lock also protects from further accesses from the
same transaction.
You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
Technicaly:
When you create a lock object System automatically creat two function module.
1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
You have to use these function module in your program.
check this link for example.
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
tables:vbak.
call function 'ENQUEUE_EZLOCK3'
exporting
mode_vbak = 'E'
mandt = sy-mandt
vbeln = vbak-vbeln
X_VBELN = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Normally ABAPers will create the Lock objects, because we know when to lock and how to lock and where to lock the Object then after completing our updations we unlock the Objects in the Tables
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
purpose: If multiple user try to access a database object, inconsistency may occer. To avoid that inconsistency and to let multiple user give the accessibility of the database objects the locking mechanism is used.
Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:
1. enque_lockobject
1. deque_lockobject
before updating any table first we lock the table by calling enque_lockobject fm and then after updating we release the lock by deque_lockobject.
http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
GO TO SE11
Select the radio button "Lock object"..
Give the name starts with EZ or EY..
Example: EYTEST
Press Create button..
Give the short description..
Example: Lock object for table ZTABLE..
In the tables tab..Give the table name..
Example: ZTABLE
Save and generate..
Your lock object is now created..You can see the LOCK MODULES..
In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
Lock objects:
http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
Match Code Objects:
http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html
See this link:
http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
Check these links -
lock objects
Lock Objects
Lock Objects
Regards
Anji -
How to set DDL lock for a table
OCI,how to set DDL lock for a table?
Oracle acquires a dictionary lock automatically on behalf of any DDL transaction requiring it. Users cannot explicitly request DDL locks. Only individual schema objects that are modified or referenced are locked during DDL operations. The whole data dictionary is never locked
DDL locks fall into three categories: exclusive DDL locks, share DDL locks, and breakable parse locks.
see this link
http://www.sc.ehu.es/siwebso/KZCC/Oracle_10g_Documentacion/server.101/b10743/consist.htm#i5281 -
Identifying deadlocked resources in graph with 1 row lock and 1 table lock
Hi, I have run into repeated occurrences of the deadlock graph at the bottom of this post and have a few questions about it:
1. It appears that proc 44, session 548 is holding a row lock (X). Is the waiter, proc 30, session 542, trying to acquire a row lock (X) also or an exclusive table lock (X) on the table containing that row?
2. Under what circumstances would something hold a row exclusive table lock (SX) and want to upgrade that to a share row exclusive table lock (SSX)?
3. Our table cxml_foldercontent has a column 'structuredDataId' with a FK to cxml_structureddata.id and an ON DELETE SET NULL trigger. Would this help explain why an "update" to one table (i.e.g cxml_foldercontent) would also need to acquire a lock in a foreign table, cxml_structureddata?
4. What is the difference between "Current SQL statement:" and "Current SQL statement for this session:"? That terminology is confusing. Is session 542 executing the "update" or the "delete"?
5. In the "Rows waited on:" section is it saying that Session 542 is waiting on on obj - rowid = 0000BE63 - AAAL5jAAGAAA6tZAAK or that it is has the lock on that row and other things are waiting on it?
A couple of notes:
- the cxml_foldercontent.structuredDataId FK column has an index on it already
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-003a0011-000003d0 44 548 X 30 542 X
TM-0000be63-00000000 30 542 SX 44 548 SX SSX
session 548: DID 0001-002C-000002D9 session 542: DID 0001-001E-00000050
session 542: DID 0001-001E-00000050 session 548: DID 0001-002C-000002D9
Rows waited on:
Session 542: obj - rowid = 0000BE63 - AAAL5jAAGAAA6tZAAK
(dictionary objn - 48739, file - 6, block - 240473, slot - 10)
Session 548: no row
Information on the OTHER waiting sessions:
Session 542:
pid=30 serial=63708 audsid=143708731 user: 41/CASCADE
O/S info: user: cascade, term: unknown, ospid: 1234, machine:
program: JDBC Thin Client
application name: JDBC Thin Client, hash value=2546894660
Current SQL Statement:
update cascade.cxml_foldercontent set name=:1 , lockId=:2 , isCurrentVersion=:3 , versionDate=:4 , metadataId=:5 , permissionsId=:6 , workflowId=:7 , isWorkingCopy=:8 , parentFolderId=:9 , relativeOrder=:10 , cachePath=:11 , isRecycled=:12 , recycleRecordId=:13 , workflowComment=:14 , draftUserId=:15 , siteId=:16 , prevVersionId=:17 , nextVersionId=:18 , originalCopyId=:19 , workingCopyId=:20 , displayName=:21 , title=:22 , summary=:23 , teaser=:24 , keywords=:25 , description=:26 , author=:27 , startDate=:28 , endDate=:29 , reviewDate=:30 , metadataSetId=:31 , expirationNoticeSent=:32 , firstExpirationWarningSent=:33 , secondExpirationWarningSent=:34 , expirationFolderId=:35 , maintainAbsoluteLinks=:36 , xmlId=:37 , structuredDataDefinitionId=:38 , pageConfigurationSetId=:39 , pageDefaultConfigurationId=:40 , structuredDataId=:41 , pageStructuredDataVersion=:42 , shouldBeIndexed=:43 , shouldBePublished=:44 , lastDatePublished=:45 , lastPublishedBy=:46 , draftOriginalId=:47 , contentTypeId=:48 where id=:49
End of information on OTHER waiting sessions.
Current SQL statement for this session:
delete from cascade.cxml_structureddata where id=:1Mohamed Houri wrote:
What is important for a foreign key is to be indexed (of course if the parent table is deleted/merged/updated, or if a performance reason imposes it). Wether this index is unique or not doesn't matter (as far as i know).But, you should ask your self the following question : what is the meaning of having a 1 to 1 relationship between a parent and a child table ? if you succeed to create a unique index on your FK then this means that for each PK value corresponds at most one FK value!! Isn't it? is this what you want to have?Thanks, as I mentioned above, cxml_structureddata is actually the child table of cxml_foldercontent with 1 or more records' owningEntityId referring to rows in cxml_foldercontent. The reason for the FK on cxml_foldercontent.structuredDataId is a little ambiguous but it explained above.
Will a TX-enqueue held on mode X always be waited on by another TX-enqueue row lock X? Or can it be waited on by an Exclusive (X) table lock?Not really clear. Sorry, are you saying my question is unclear or it's not clear why type of eXclusive lock session 542 is trying to acquire in the first line of the trace? Do you think that the exclusive lock being held by session 548 in the first line is on rows in cxml_foldercontent (due to the ON DELETE SET NULL on these child rows) or rows in the cxml_structureddata that it's actually deleting?
Is there any way for me to tell for certain?
The first enqueue is a TX (Transaction Enqueue) held by session 548 on mode X (exclusive). This session represents the blocking session. At the same time the locked row is waited on by the blocked session (542) and the wait is on mode X (exclusive). So put it simply, we have here session 542 waiting for session 548 to release it lock (may be by commiting/roll backing). At this step we are not in presence of a deadlock.
The second line of the deadlock graph shows that session 542 is the blocking session and it is doing a TM enqueue (DML lock) held on SX(Shared eXclusive). While session 548(which is the waiting session) is blocked by session 542 and is waiting on SSX mode.
Here we see that 548 is blocking session 542 via a TX enqueue and session 542 is blocking session 548 via a TM enqueue ---> That is the deadlock. Oracle will then immediately choose arbitrarlly a victim session (542 or 548) and kill its process letting the remaining session continuing its work.
That is your situation explained here.Thanks, any idea why session 542 (the DELETE from cxml_structureddata) would be trying to upgrade it's lock to SSX? Is this lock mode required to update a child tables foreign key columns when using an ON DELETE SET NULL trigger? Having read more about SSX, I'm not sure I understand in what cases it's used. Is there a way for me to confirm with 100% certainty specifically which tables in the TM enqueue locks are being held on? Is session 548 definitely trying to acquire an SSX mode on my cxml_foldecontent table or could it be cxml_structureddata table?
(a) Verify that all your FK are indexed (be carreful that the FK columns should be at the leading edge of the index)Thanks, we've done this already. When you say the "leading edge" you mean for a composite index? These indexes are all single column.
(b) Verify the logic of the DML against cxml_foldercontentCan you be more specific? Any idea what I'm looking for? -
Hi All !!
I want to update one custom table which has key fields K1, K2 and K3.
I am using ENQUEUE_E_TABLE to lock the table.But I dont know how to send the table for enqueue.
Nextly, I need to send keys of table .Should I use any structure where I append the key fields and export the structure. The function call is as :
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
MODE_RSTABLE = 'E'
TABNAME = ?
VARKEY =?
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3
Please help in this regard..
Thanks in advance..
Prabhas.Hai.
Check this.
Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
SAP Provide three type of Lock objects.
- Read Lock(Shared Locked)
protects read access to an object. The read lock allows other transactions read access but not write access to
the locked area of the table
- Write Lock(exclusive lock)
protects write access to an object. The write lock allows other transactions neither read nor write access to
the locked area of the table.
- Enhanced write lock (exclusive lock without cumulating)
works like a write lock except that the enhanced write lock also protects from further accesses from the
same transaction.
You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
Technicaly:
When you create a lock object System automatically creat two function module.
1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
You have to use these function module in your program.
check this link for example.
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
tables:vbak.
call function 'ENQUEUE_EZLOCK3'
exporting
mode_vbak = 'E'
mandt = sy-mandt
vbeln = vbak-vbeln
X_VBELN = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Normally ABAPers will create the Lock objects, because we know when to lock and how to lock and where to lock the Object then after completing our updations we unlock the Objects in the Tables
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
purpose: If multiple user try to access a database object, inconsistency may occer. To avoid that inconsistency and to let multiple user give the accessibility of the database objects the locking mechanism is used.
Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:
1. enque_lockobject
1. deque_lockobject
before updating any table first we lock the table by calling enque_lockobject fm and then after updating we release the lock by deque_lockobject.
http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
GO TO SE11
Select the radio button "Lock object"..
Give the name starts with EZ or EY..
Example: EYTEST
Press Create button..
Give the short description..
Example: Lock object for table ZTABLE..
In the tables tab..Give the table name..
Example: ZTABLE
Save and generate..
Your lock object is now created..You can see the LOCK MODULES..
In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
Lock objects:
http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
Match Code Objects:
http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html
See this link:
http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm
Check these links -
lock objects
Lock Objects
Lock Objects
Regards.
Sowjanya.B. -
DTP loading to master data is running long due to lock on SID table
Hi All,
We have DTP loading directly from infoobject to master data infobject. DTP usually takes less than 30min to update but at times its observed the DTP runs for hours to update. No dump was found on ST22. and no locks on sm12 apart from this DTP. On analysing the log in sm37, we found exclusive locks on the SID tables.
18.03.2014 02:06:53 All records forwarded RSM2 730
18.03.2014 02:22:32 EXTRACTION OF DATAPACKAGE 000014 RSAR 051
18.03.2014 02:22:33 All records forwarded RSM2 730
18.03.2014 02:38:36 EXTRACTION OF DATAPACKAGE 000015 RSAR 051
18.03.2014 02:38:37 All records forwarded RSM2 730
18.03.2014 02:55:25 EXTRACTION OF DATAPACKAGE 000016 RSAR 051
18.03.2014 02:55:25 All records forwarded RSM2 730
18.03.2014 03:13:56 SQL: 18.03.2014 03:13:56 ALEREMOTE DBMAN 099
18.03.2014 03:13:56 TRUNCATE TABLE "/BI0/0600000066" DBMAN 099
18.03.2014 03:13:56 SQL-END: 18.03.2014 03:13:56 00:00:00 DBMAN 099
18.03.2014 03:13:56 SQL: 18.03.2014 03:13:56 ALEREMOTE DBMAN 099
18.03.2014 03:13:56 LOCK TABLE "/BI0/0600000066" IN EXCLUSIVE MODE DBMAN 099
18.03.2014 03:13:56 NOWAI DBMAN 099
18.03.2014 03:13:56 SQL-END: 18.03.2014 03:13:56 00:00:00 DBMAN 099
18.03.2014 03:13:58 EXTRACTION OF DATAPACKAGE 000017 RSAR 051
18.03.2014 03:13:59 All records forwarded RSM2 730
18.03.2014 03:34:24 EXTRACTION OF DATAPACKAGE 000018 RSAR 051
18.03.2014 03:34:25 All records forwarded RSM2 730
18.03.2014 03:56:03 EXTRACTION OF DATAPACKAGE 000019 RSAR 051
18.03.2014 03:56:03 All records forwarded RSM2 730
18.03.2014 04:19:55 EXTRACTION OF DATAPACKAGE 000020 RSAR 051
18.03.2014 04:19:56 All records forwarded RSM2 730
18.03.2014 04:44:07 SQL: 18.03.2014 04:44:07 ALEREMOTE DBMAN 099
18.03.2014 04:44:07 TRUNCATE TABLE "/BI0/0600000068" DBMAN 099
18.03.2014 04:44:09 SQL-END: 18.03.2014 04:44:09 00:00:02 DBMAN 099
18.03.2014 04:44:09 SQL: 18.03.2014 04:44:09 ALEREMOTE DBMAN 099
18.03.2014 04:44:09 LOCK TABLE "/BI0/0600000068" IN EXCLUSIVE MODE DBMAN 099
18.03.2014 04:44:09 NOWAI DBMAN 099
Is the lock on the SID table reason for the delay?? if so how to avoid this delay?
if not, What are the other possibilties to avoid this issue ??
Thanks in advance.Hello Yogesh,
priority of the Job is 'A' . Is this related to lock on SID table as when i observe system logs for successful runs i don see the lock on SID table.
please refer the below log for successful run.
19.03.2014 07:16:21 EXTRACTION OF DATAPACKAGE 000051
19.03.2014 07:16:22 All records forwarded
19.03.2014 07:16:34 EXTRACTION OF DATAPACKAGE 000052
19.03.2014 07:16:34 All records forwarded
19.03.2014 07:16:47 EXTRACTION OF DATAPACKAGE 000053
19.03.2014 07:16:48 All records forwarded
19.03.2014 07:17:02 EXTRACTION OF DATAPACKAGE 000054
19.03.2014 07:17:03 All records forwarded
19.03.2014 07:17:17 EXTRACTION OF DATAPACKAGE 000055
19.03.2014 07:17:17 All records forwarded
19.03.2014 07:17:31 EXTRACTION OF DATAPACKAGE 000056
19.03.2014 07:17:32 All records forwarded
19.03.2014 07:17:45 EXTRACTION OF DATAPACKAGE 000057
19.03.2014 07:17:45 All records forwarded
19.03.2014 07:17:58 EXTRACTION OF DATAPACKAGE 000058
19.03.2014 07:17:59 All records forwarded
19.03.2014 07:18:11 EXTRACTION OF DATAPACKAGE 000059
19.03.2014 07:18:11 All records forwarded
19.03.2014 07:18:24 EXTRACTION OF DATAPACKAGE 000060
19.03.2014 07:18:24 All records forwarded
19.03.2014 07:18:37 EXTRACTION OF DATAPACKAGE 000061
19.03.2014 07:18:37 All records forwarded
19.03.2014 07:18:50 EXTRACTION OF DATAPACKAGE 000062
19.03.2014 07:18:51 All records forwarded
19.03.2014 07:19:04 EXTRACTION OF DATAPACKAGE 000063
19.03.2014 07:19:06 All records forwarded
19.03.2014 07:19:19 EXTRACTION OF DATAPACKAGE 000064
19.03.2014 07:19:20 All records forwarded
19.03.2014 07:19:32 EXTRACTION OF DATAPACKAGE 000065
19.03.2014 07:19:33 All records forwarded
19.03.2014 07:19:47 EXTRACTION OF DATAPACKAGE 000066
19.03.2014 07:19:47 All records forwarded
19.03.2014 07:19:53 EXTRACTION OF DATAPACKAGE 000067
19.03.2014 07:19:53 Start of Serial Processing Processing is Executed in the Same LUW
19.03.2014 07:19:53 Processing started for batch ID DTPR_1739894_1 process 3
19.03.2014 07:19:53 Processing completed for batch ID DTPR_1739894_1 process 3
19.03.2014 07:19:53 End of Serial Processing Executed in the Same LUW
19.03.2014 07:19:54 Technical status 'Green' (user ALEREMOTE)
19.03.2014 07:19:57 Set overall status to 'Green' (user ALEREMOTE)
19.03.2014 07:20:41 Processing completed for batch ID DTPR_1739894_1 process 2
19.03.2014 07:20:41 Job finished
Thanks -
Ingres vs Oracle exclusive locking
Ingres allows an exclusive lock on tables, set lockmode on tablename where readlock = exclusive which means the users can't access the same
rows that are being modified by another query.
Is there anything in oracle that does the same thing ? All of Oracle's locking seesm to be that you can
still read data. And that is what my user is afraid of. He doesn't want to read old data, when it's
being changed.
How do you work around this ?
Thanks.Ingres allows an exclusive lock on tables, set lockmode on tablename where readlock = exclusive which means the users can't access the same
rows that are being modified by another query.
Is there anything in oracle that does the same thing ? All of Oracle's locking seesm to be that you can
still read data. And that is what my user is afraid of. He doesn't want to read old data, when it's
being changed.
How do you work around this ?
Thanks. -
Hello
I have a question.
If we have two scott sessions. I am updating a table EMP in session 1. It means it is exclusively locked.It cannot be used by session 2. Then can we use select command on table EMP in session 2.?? This command shoul not work according to me. But it is working.
Reply me.
Thanks in anticipation.984426 wrote:
But in shared / exclusive lock, we have a property that we can't acquire shared lock on data if it is exclusively locked and vice versa. that means readers block writers and vice versa.
E.g. if T1 is updating a row then how T2 can read that row? If T2 is reading then that is inconsistent data as it will pick the non-updated value of that row until T1 commits.
Please explain.
I am having doubts in this topic.
ThanksYou need to check back again the basic concepts from the Concepts guide. Your understanding about the Oracle's working is completely wrong.
In Oracle, the Transaction Isolation Level is set to Read Committed . This means any kind of inconsistent data is not possible to be read by you and for that data , Oracle would create for you a consistent image using the Undo Blocks in which the old image is going to be stored till the time that transaction is not over( and even after that too for some time with conditions apply) . So if T1 is updating a row, T2 can't lock the same row as it would be locked exclusively and the S1 (another select) would be seeing an old and consistent image of that change only as long as it's not committed. What you said doesn't and won't work ever in Oracle.
Read the first link that's given to you already.
Aman.... -
I want to do an access exclusive lock in Oracle.
I have a timer application which needs to pull record from a database table with some status (say 100) (Status is a column in the table).
But processing these records takes a lot of time.So the Timer application spawns one more process to pull the newly arrived records. This process needs to pull only the fresh records not the one which are being processed.
How do I achieve this type of locking in Oracle. If I lock the records using
SELECT FOR UPDATE only one process can use these records!!
Is it possible in Oracle??
ThanksHi,
If you are using RDBMS ver 8.0 or above, you
can use SKIP LOCKED option along with SELECT FOR UPDATE.
Say there are 20 records in a table,
Session 1 locks records from 1-10 using select for update,
Session 2 can skip the records which are locked and get records from 11-20 using
SELECT * FROM table_name
FOR UPDATE SKIP LOCKED;
Cheers,
Adithya
null -
How to release an exclusive lock
Hi,
I don't know, how to release a lock, after locking exclusive.
We're locking our BOPF Object like this:
o_task_srv_mngr->retrieve(
exporting
iv_fill_data = abap_false
iv_node_key = /cenitapm/if_bo_pw_task_c=>sc_node-pwtsk " Node
it_key = t_key " Key Table
iv_edit_mode = /bobf/if_conf_c=>sc_edit_exclusive
importing
eo_message = o_message
Now how do I release the lock again?
I know, It is released after a save of the transaction manager, but how do i achieve an unlocking without that save?
Regards DavidAfter some investigation, I came to following result:
Locks are released on commit or rollback.
So if I want to release an exclusive lock, I have to rollback everything in the current session.
After feeling limited by this design in the first place, I now think, this is a great way to secure my data integrity.
I only want to release an exclusive lock if I don't want to save my data, or if I want to save it ;)
I just have to ensure, all data not belonging to the actual transaction is saved before setting an exclusive lock to another object.
So thumbs up for the designer of this concept.
Maybe you are looking for
-
I have 20 apps that flashes a "waiting" sign on the icons that I have tried to update. it's now over 2 weeks and the updates haven't been completed. I have added on some new apps and they are working fine, I a not able to delete or. Reinstall thos
-
Multiple Kinect 360 sensors in v2 SDK?
Hi, therer are several threads pointing out that there is no way of using multiple v2 sensors on the same machine due to PCI bandwidth limitations. However, I would like to use multiple v1 sensors instead. I'm about to move form OpenNI to Kinect SDK
-
Can I override high-units with a 'system-property' attribute?
In an attempt to centralize property configurations, can I override the high-units with a system-override? <backing-map-scheme> <read-write-backing-map-scheme> <internal-cache-scheme> <local-scheme> *<high-units system-property="high.for.prod">2G</hi
-
How do I put DVD's onto my iPad?
I am wondering if there is a way to put DVD movies onto my iPad. Apple Support said there were some apps that could do it but he could not advise me beyond that. It seems like if you can put your CD's on there, then why would you not be able to with
-
Hi Gurus, While running MRP at Plant level (MD01), System throws error as " <b>Check the destinations for parallel MRP</b>" in Quality Server. As we have done same setting in DEV & it's allowing to Run MRP. Give comment on it. Thanx in Advance.