Timesten Table Locking - ttxactadmin
Hi,
Point number 1.
Trace file output
15:42:41.961 10667 SQL 2L 13C 7866P Preparing: {CALL ttOptSetFlag('RowLock', 0)}
15:42:41.961 10668 SQL 3L 13C 7866P Executing: {CALL ttOptSetFlag('RowLock', 0)}
15:42:41.961 10669 SQL 2L 13C 7866P Preparing: {CALL ttOptSetFlag('TblLock', 1)}
15:42:41.961 10670 SQL 3L 13C 7866P Executing: {CALL ttOptSetFlag('TblLock', 1)}
15:44:11.013 246101 SQL 3L 1C 23864P Opening: SELECT SMST_SHORT_SELL_FLG, NVL(SM.SMST_INTRADAY_ALLWED_FLG, 'N'), NVL(SM.SMST_MAR_ALLOWD_FLG, 'N'), NVL(SM.SMST_T2_ALLOW_FLG, 'N'), NVL(SM.SMST_COVER_ALLOW_FLG, 'N'), DECODE(:B3 , :B2 , NVL(SM.SMST_RCBM_BASKET_ID, 'NO_BKT'), NVL(SMST_EBM_BASKET_ID, 'NO_BKT')), SM.SMST_ISIN_CODE, SM.SMST_OPEN_POSITION, SM.SMST_EXPOSURE_LIMIT FROM SECURITY_MASTER SM WHERE SMST_SECURITY_ID = :B1
15:44:11.013 246102 SQL 3L 10C 8041P Executing: update ttrep.reppeers set sendlsnhigh = :h, sendlsnlow = :l, reptableslsnhigh = :rh, reptableslsnlow = :rl, commit_timestamp = :ct, commit_seqnum = :cs, timesend = :t where replication_name = :rname and replication_owner = :rowner and tt_store_id = :mid and subscriber_id = :sid
15:44:11.013 246103 SQL 3L 1C 23864P execEnvGet: Allocated new env 8412790936 due to size reqd, nr=52, sdsz=34343
15:44:11.013 246104 SQL 3L 1C 23864P Opening: SELECT NVL(SUM(TONE_CURR_TRADE_QTY),0), NVL(SUM(TONE_BUY_ORD_QTY),0), NVL(SUM(TONE_SELL_ORD_QTY),0) FROM TRADE_ORD_NET_EXPOSURE WHERE TONE_ENTITY_ID = :B6 AND TONE_SECURITY_ID = :B5 AND TONE_EXCH_ID = :B4 AND TONE_ACC_TYPE = :B3 AND TONE_PRODUCT_ID = :B2 AND TONE_DATE = :B1
15:44:11.014 246105 SQL 3L 62C 23943P execEnvGet: Allocated new env 8413003648 due to size reqd, nr=47, sdsz=18633
15:44:11.014 246106 SQL 3L 62C 23943P Opening: select nvl(RQ.RQ_ORDER_NO,0) ,nvl(RQ.RQ_ORD_SERIAL_NO,0) ,trim(RQ.RQ_BUY_SELL_IND) ,trim(RQ.RQ_CLIENT_ID) ,to_number(trim(RQ.RQ_USER_ID)) ,trim(RQ.RQ_ENTITY_ID) ,trim(RQ.RQ_SECURITY_ID) ,trim(RQ.RQ_EXCH_ID) ,RQ.RQ_SEQ_NO ,nvl(RQ.RQ_D2C1_FLAG,'Y') ,nvl(RQ.RQ_FI_RETAIL_FLG,'L') ,nvl(RQ.RQ_OIB_INT_REF_ID,0) ,RQ.RQ_SOURCE_FLAG ,RQ_SESSION_TYPE ,RQ_PRODUCT_ID ,RQ_GROUP_ID ,RQ_HANDL_INST ,RQ_SETTLEMENT_TYPE ,RQ_CLIENT_SUB_TYPE ,RQ_ALGO_OI_NUM into :b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,:b9,:b10,:b11,:b12,:b13,:b14,:b15,:b16,:b17,:b18,:b19,:b20 from REQUEST_QUEUE RQ where (((RQ.RQ_EXCH_ORDER_NO=:b21 and RQ
15:44:11.014 246107 SQL 3L 1C 23864P Opening: SELECT RELD_LMT_FLG FROM RMS_ENTITY_LIMIT_DTLS WHERE RELD_EM_ENTITY_ID = :B2 AND RELD_SEGMENT_TYPE = 'C' AND RELD_EXM_EXCH_ID = 'ALL' AND RELD_ACC_TYPE = :B1
15:44:11.014 246108 SQL 3L 1C 23864P Opening: SELECT SEM_VAR_PERCENTAGE, SEM_EXCH_SPCL_MAR_PCT FROM SECURITY_EXCH_MAP S WHERE SEM_SMST_SECURITY_ID = :B2 AND SEM_EXM_EXCH_ID = :B1 AND SEM_STATUS = 'A' AND SEM_DERIVATIVE_FLG = 'N'
15:44:11.014 246109 SQL 3L 62C 23943P Opening: select OS_SEQ_NO into :b1 from ORDER_SEQ where OS_ORDER_NO=:b2
15:44:11.014 246110 SQL 3L 1C 23864P execEnvGet: Allocated new env 8412793368 due to size reqd, nr=108, sdsz=2400
15:44:11.014 246111 SQL 3L 1C 23864P Opening: SELECT SUM(NVL(TONE_TOT_NET_EXP, 0)), SUM(NVL(TONE_CURR_NET_EXP, 0)), SUM(NVL(TONE_BUY_ORD_QTY, 0)), SUM(NVL(TONE_SELL_ORD_QTY, 0)), SUM(NVL(TONE_CURR_TRADE_QTY, 0)), MAX(TONE_MARGIN_PCT), SUM(TONE_BUY_ORD_VAL), SUM(TONE_SELL_ORD_VAL), SUM(T.TONE_AVG_TRANS_PRICE), SUM(TONE_AVG_CUM_BUY_AMT), SUM(TONE_AVG_CUM_SELL_AMT), SUM(TONE_BUY_EXPOSURE), SUM(TONE_SELL_EXPOSURE), SUM(TONE_CURR_TRADE_VAL), SUM(TONE_BOOKED_PROFIT) FROM TRADE_ORD_NET_EXPOSURE T WHERE TONE_ENTITY_ID = :B7 AND TONE_EXCH_ID = :B6 AND TONE_SECURITY_ID = :B5 AND TONE_TCURR = :B4 AND TONE_ACC_TYPE = :B3 AND TONE_PRODUCT_ID = :B2 AND
15:44:11.014 246112 SQL 3L 62C 23943P execEnvGet: Allocated new env 8411217112 due to size reqd, nr=121, sdsz=5916
15:44:11.014 246113 SQL 3L 62C 23943P Opening: select ORD_ORDER_NO ,ORD_SERIAL_NO ,LTRIM(RTRIM(ORD_SEM_SMST_SECURITY_ID)) ,ORD_BTM_EMM_MKT_TYPE ,ORD_EXCH_ID ,LTRIM(RTRIM(ORD_EPM_EM_ENTITY_ID)) ,nvl(ORD_EXCH_ORDER_NO,0) ,nvl(ORD_CLIENT_ID,'0') ,ORD_BUY_SELL_IND ,to_char(ORD_ENTRY_DATE,'DD-MM-YYYY HH24:MI:SS') ,to_char(ORD_ORDER_TIME,'DD-MM-YYYY HH24:MI:SS') ,to_char(ORD_ORIGINAL_TIME,'DD-MM-YYYY HH24:MI:SS') ,ORD_QTY_ORIGINAL ,ORD_ORDER_PRICE ,nvl(ORD_TRIGGER_PRICE,0) ,ORD_DISC_QTY_FLG ,to_char(ORD_GTC_FLG) ,to_char(ORD_DAY_FLG) ,to_char(ORD_IOC_FLG) ,to_char(ORD_MIN_FILL_FLG) ,to_char(nvl(ORD_MKT_FLG,0)) ,to_char(ORD_STOP_LOSS_FLG) ,to_cha
15:44:11.014 246114 SQL 3L 1C 23864P Executing: UPDATE TRADE_ORD_NET_EXPOSURE SET TONE_BUY_ORD_QTY = TONE_BUY_ORD_QTY + :B17 , TONE_BUY_ORD_VAL = TONE_BUY_ORD_VAL + :B16 , TONE_SELL_ORD_QTY = TONE_SELL_ORD_QTY + :B15 , TONE_SELL_ORD_VAL = TONE_SELL_ORD_VAL + :B14 , TONE_CURR_NET_EXP = TONE_CURR_NET_EXP + :B13 , TONE_TOT_NET_EXP = TONE_TOT_NET_EXP + :B12 , TONE_TOT_BROKERAGE = TONE_TOT_BROKERAGE + :B11 , TONE_BUY_EXPOSURE = TONE_BUY_EXPOSURE + :B10 , TONE_SELL_EXPOSURE = TONE_SELL_EXPOSURE + :B9 WHERE TONE_ENTITY_ID = :B8 AND TONE_EXCH_ID = :B7 AND TONE_SECURITY_ID = :B6 AND TONE_TCURR = :B5 AND TONE_PRODUCT_ID = :B4 AND TONE_ACC_TYPE = :B3
15:44:11.014 246115 SQL 3L 1C 23864P execEnvGet: Allocated new env 8412792952 due to size reqd, nr=62, sdsz=1994
15:44:11.014 246116 SQL 3L 10C 8041P Executing: update ttrep.reppeers set sendlsnhigh = :h, sendlsnlow = :l, reptableslsnhigh = :rh, reptableslsnlow = :rl, commit_timestamp = :ct, commit_seqnum = :cs, timesend = :t where replication_name = :rname and replication_owner = :rowner and tt_store_id = :mid and subscriber_id = :sid
15:44:11.014 246117 SQL 3L 1C 23864P Executing: UPDATE RMS_ENTITY_LIMIT_DTLS R SET RELD_RTO_EXP = NVL(RELD_RTO_EXP, 0) + :B12 , RELD_NE_EXP = NVL(RELD_NE_EXP, 0) + :B11 , RELD_MAR_UTILIZATION = NVL(RELD_MAR_UTILIZATION, 0) + :B5 , RELD_BROKERAGE_AMT = NVL(RELD_BROKERAGE_AMT, 0) + :B10 , RELD_BUY_EXP = R.RELD_BUY_EXP + :B9 , RELD_SELL_EXP = R.RELD_SELL_EXP + :B8 , RELD_EMARGIN_UTILIZATION = RELD_EMARGIN_UTILIZATION + DECODE(:B7 , :B6 , :B5 , 0) WHERE RELD_EM_ENTITY_ID = :B4 AND R.RELD_EXM_EXCH_ID = :B3 AND R.RELD_SEGMENT_TYPE = 'E' AND R.RELD_ACC_TYPE = :B2 AND R.RELD_PROCESS_ID = :B1
15:44:11.014 246118 SQL 3L 1C 23864P execEnvGet: Allocated new env 8412793496 due to size reqd, nr=54, sdsz=2524This content is displayed in my trace file
and o/p of ttxactadmin is
Program File Name: EquNseParent1
30486 0x139202b0 54.7002 Active Database 0x01312d0001312d00 IX 0
Command 8416780720 S 8416780720
Row BMUFVUAAAC2BwAALDe Xn 8416776768 DAIWAPRODV7.RMS_ENTITY_LIMIT_DTLS
Row BMUFVUAAABGEAAABgz Xn 8416766544 DAIWAPRODV7.RMS_ENTITY_LIMIT_DTLS
Table 12144968 IXn 8416766544 DAIWAPRODV7.RMS_ENTITY_LIMIT_DTLS
Row BMUFVUAAABPEAAAFhL Xn 8416493904 DAIWAPRODV7.TRADE_ORD_NET_EXPOSURE
Table 719136 IXn 8416493904 DAIWAPRODV7.TRADE_ORD_NET_EXPOSURE
Row BMUFVUAAACoFAAAIBt Xn 8413989000 DAIWAPRODV7.RMS_SOD_EOD_LOG
Table 721136 IXn 8413989000 DAIWAPRODV7.RMS_SOD_EOD_LOG
Command 8419805088 S 8419805088
Command 8419800256 S 8419800256
Command 8419759480 S 8419759480
Command 8412801112 S 8412801112
13 locks found for transaction 54.7002As per my understanding of this " Table 12144968 IXn 8416766544" lock is that there is a table lock.
So we tried setting as per http://docs.oracle.com/cd/E11882_01/timesten.112/e21643/proced.htm#TTREF271
CALL ttOptSetFlag('RowLock', 1)
CALL ttOptSetFlag('TblLock', 0)
but result is still the same.
22878 0x9555770 151.643 Active Database 0x01312d0001312d00 IX 0
Row BMUFVUAAAAOJQAAJD2 Xn 6306707440 VSEVEN.RMS_ENTITY_LIMIT_DTLS
Table 12827064 IXn 6306707440 VSEVEN.RMS_ENTITY_LIMIT_DTLS
Row BMUFVUAAABbKwAAIDO Xn 6306693872 VSEVEN.TRADE_ORD_NET_EXPOSURE
Table 719232 IXn 6306693872 VSEVEN.TRADE_ORD_NET_EXPOSURE
Row BMUFVUAAABqBgAAGj1 Xn 6306573400 VSEVEN.RMS_SOD_EOD_LOG
Table 12826952 IXn 6306573400 VSEVEN.RMS_SOD_EOD_LOG
We are facing locking issues degrading our performance. What does ttoptesetflag('TblLock', 1) and ttoptesetflag('TblLock', 0) implies and why is it showing table level locks
Point number 2.
Also we run the procedure from backend it takes 1 ms for complete process, where as same when called from proc is taking more than 160 ms
Point number 3.
Also as seen in trace file there is frequent statement
"23864P execEnvGet: Allocated new env 8412790936 due to size reqd, nr=52, sdsz=34343"
what does it imply..?
Regards,
Yogita
Hi Chris,
Sorry for the delay.. The Pro*C code snippet is :
logTimestamp("BEFORE PK_RMS_INTEGRATED_MAIN.PR_RMS_ORDER_MAIN");
logDebug3("TESTIN db_conn value: %s", db_conn.arr);
EXEC SQL AT :db_conn EXECUTE
BEGIN
PK_RMS_INTEGRATED_MAIN.PR_RMS_ORDER_MAIN (
rtrim(ltrim(:TempEntityId)),
rtrim(ltrim(:TempClientFamilyId)),
rtrim(ltrim(:TempEntityType)),
:TempClientAccType,
:TempSettType,
rtrim(ltrim(:TempAccCode)),
rtrim(ltrim(:TempClientProdPriv)),
rtrim(ltrim(:TempClientId)),
rtrim(ltrim(:TempClientProfileId)),
:TempClientStatus,
rtrim(ltrim(:D2C1ControllerId)),
rtrim(ltrim(:TempDealerProfileId)),
:TempDealerStatus,
rtrim(ltrim(:TempBranchId)),
rtrim(ltrim(:TempBranchProfileId)),
:TempBranchStatus,
rtrim(ltrim(:TempBranchId)),
rtrim(ltrim(:TempBranchProfileId)),
:TempBranchStatus,
rtrim(ltrim(:TempBrokerId)),
rtrim(ltrim(:TempBrokerProfileId)),
:TempBrokerStatus,
:RMS_Deact_Entity,
:RMS_Status,
:RMS_Reason_Id,
:TempOrderNo,
:TempSerialNo,
rtrim(ltrim(:TempExchId)),
:TempQtyRemaining,
:TempPrice,
:TempPrice_Mrg,
:old_ord_qty_remaining,
:old_price,
:Transcode,
rtrim(ltrim(:TempBuyOrSell)),
rtrim(ltrim(:TempSecurityId)),
:SeriesInd,
rtrim(ltrim(:TempMktType)),
:off_on_order,
'F001',
rtrim(ltrim(:TempUserId)),
:TempProductId,
:TempSourceFlag,
:BasketOrderNumber,
:TempSeqNo,
:TempSeqNo_Mrg,
:msg_count,
:TempUserIdString,
:TempUsrMesgString,
:RetCode,
:RetString
END;
END-EXEC;
logTimestamp("AFTER PK_RMS_INTEGRATED_MAIN.PR_RMS_ORDER_MAIN");
if(sqlca.sqlcode !=0)
printf("\n 1. Error in execution RMS_MAIN : %d",sqlca.sqlcode );
printf("\n ERROR :%s\n",sqlca.sqlerrm.sqlerrmc) ;
/**Added for user friendly_RMS Message for version 3.3***/
printf("\n Error is %s : %d",errstr,sqlca.sqlcode);
/**Added for user friendly_RMS Message for version 3.3***/
sprintf(p_req_out->ind_str[0],RMS_ERROR);
EXEC SQL ROLLBACK; /* ganesh */
p_req_out->user_id[0]=p_req->IntReqHeader.UserIdOrLogPktId ;
p_req_out->tot_num_user=1;
logDebug3("User Id:%d,Tot Num Of User:%d",p_req_out->user_id[0],p_req_out->tot_num_user) ;
return (FALSE);
}logTimestamp function is defined as
void
logTimestamp (const char *fmt, ...)
va_list ap;
va_start(ap, fmt);
CHAR buffer[LOG_TIMESTAMP_LENGTH];
CHAR chktime[DATE_LEN];
static CHAR message[LOG_BUFFER_LENGTH];
struct timeval tv;
time_t curtime;
gettimeofday(&tv, NULL);
curtime=tv.tv_sec;
strftime(chktime, DATE_LEN, "%d:%m:%Y", localtime(&curtime));
if ( strcmp(chktime,logTime))
logLevelSet = 0;
strftime(buffer, LOG_TIMESTAMP_LENGTH, "%d:%m:%Y %T", localtime(&curtime));
vsprintf(message, fmt, ap);
fprintf(stdout, "%s.%06ld: %s\n", buffer, tv.tv_usec, message);
va_end(ap);
return;
}Can you point us towards some documentation towards the impact of using memorylock=4 for linux ?
Regards,
Karan
Similar Messages
-
Multiple parallel loads into one table with TABLE LOCK option
Hi everyone:
We have several SSIS packages where each package has the basic design of having one sequence container. Inside each sequence container can be anywhere from 2 - 9 data flow tasks where for each data is selected from a different table but all 2-9 tasks do
an OLEDB fast load (with table lock option checked) into the same single destination table.
The number of rows were pulling from the various sources might be anywhere from 5 up to 100,000.
Right now this doesn't seem to be causing any issues, but I wanted to check to see if this set up (since we're doing a review) could potentially cause problems down the road?
We seem to think that each parallel task will acquire its data as normal, and just won't be able to insert until one of the other parallel tasks completes its fast load. To us, that's no big deal as we're at least able to acquire the data in parallel.
What are everyone's thoughts?
Thanks!>>>We seem to think that each parallel task will acquire its data as normal, and just won't be able to insert
until one >>>of the other parallel tasks completes its fast load.
That is correct observation.
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Share Table Locks (S)
Hi All,
I'm using version - Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
Oracle doc(relase 10.2) - A share table lock is acquired automatically for the table specified in the following statement:
LOCK TABLE table IN SHARE MODE;
Permitted Operations: A share table lock held by a transaction allows other transactions only to query the table, to lock specific rows with SELECT ... FOR UPDATE, or to run LOCK TABLE ... IN SHARE MODE statements successfully.
--It means...if table is locked in share mode ,than other transaction can fire <select * from table_name where ... for update> statment.
the way I have tried...
Scott_1> lock table t_chk in share mode;
scott_> select * from t_chk where a = 10 for update; <this stmt waits for scott_1 to fire rollback or commit>
than Pls let me know what is meaning of --<to lock specific rows with SELECT ... FOR UPDATE> in above explation.
source -
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/consist.htm#sthref1939Hi,
if I understand what you are asking...
Lock for update tells the database that you have locked your database set for UPDATE purposes.
So if you attempt to do this with a data set that it is currently being updated then your code fails when it tries to reserve and no updates are done.
If you do it and some tries to update the same data whilst you have it locked for update, then there update will be pending the completion of yours, and will not be allowed to happen until after you finish.
If someone else attempts to Lock for Update whilst you have your lock for update then there code will fail and no updates are done by them...
As for SELECT - as SQL updates are either committed (have happened) or not - then the user will always get a read consistent result, but your locks never prevent their snapshots allowing normal query behaviour.
Make sense??
regards,
Robert. -
Time out parameter to avoid Table locking
Hi,
I am looking at any configurable parameter if any for setting the time out parameter to avoid Table locking.Now what's happening is : If i run select ...for update from one session,oracle is applying a lock till i do a commit.And if i run the same query from another session,it takes unspecified time without returning any error.Using the query with NOWAIT options does not serve my purpose.
Any help in this regard is appreciated
Thanks
SamAre you looking for a way to time out the original query, or are you looking for a way for the second query to wait for some time and then abort if it is unable to lock the row(s)?
Justin
Distributed Database Consulting, Inc.
www.ddbcinc.com -
Configuring profile parameter for a table lock object
Hi Experts-
I want to set the 'wait time' (_WAIT) parameter as a profile parameter for a table lock object.
I have created a lock object on a ZTable. I lock and unlock this object in exclusive non-cumulative mode through the enqueue and dequeue lock object function modules. These generated FMs are invoked via my custom function module.
My function module will run in the background as a scheduled task in R/3. I execute the Enqueue FM at the start of the FM and keep the table locked until the last step finishes in my FM and then I Dequeue it. I want to have the processing wait and retry the Enqueuring FM at set intervals in case the one run doesn't finish entirely and a new run of this same job kicks off.
Thank you,
- Vik.Set the wait parameter = 'X'. These means that if it encounters a lock, then it will wait a certain time for the lock to be released. This certain time is a system value set by your basis team. I don't imagine it being a very long time.
CALL FUNCTION 'ENQUEUE_EZPIPHYINVREF'
EXPORTING
MODE_ZPIPHYINVREF = 'E'
MANDT = SY-MANDT
_WAIT = 'X'.
Regards,
Rich Heilman -
How to release table locks?
I was running Data Services (4.0 SP2) to load data into Hana (1.0 SP2 patch 20) using the Bulk load option. Apparently, the DS process hung and now the table I was writing to is locked although the DS Job is dead. How do you release the table lock without restarting Hana DB?
Hello Sachin,
you could try these statements. The first one will cancel the currently executed operation, the second one will disconnect the idle session:
ALTER SYSTEM CANCEL SESSION session_id;
ALTER SYSTEM DISCONNECT SESSION session_id;
Regards,
Mark -
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? -
Disk space transaction and temp table lock in oracle
Hi,
Today many sessions used to get disk space transaction lock and temp table lock and i am seeing these locks first time in my Production database,
is there any workaround to avoid this contension.
Thanks
Prakash GRPost your version (all 3 decimal places).
Post the SELECT statement and results that have led you to this conclusion.
Other than the fact that you have seen a number what, precisely, is the issue. -
Hello All,
Just wanted some advice, here is my situation.
I have a message driven bean which i want to ensure i only receive once.
So i am storing the MDB id's in a DB2 Database.
(simple table that just stores MDB id's plus some other mdb data)
I would like to do a table lock to keep MDB reading/inserting consistency. In my transaction I would be.
check if the id is there already and an insert if its not.
I think I can use a select for update in DB2 but i have also been reading about setting isolation type of TRANSACTION_SERIALIZABLE. Which would be the best approach?also just found another DB2 SQL statment LOCK TABLE not sure if this is another good soultion.
-
Hi all,
could you explain the root of difference between table lock and dead lock ?
Thanks.It's http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9015.htm#SQLRF01605 vs. http://docs.oracle.com/cd/E11882_01/server.112/e25789/glossary.htm#CNCPT8675
Regards
Etbin -
How to release the table lock DBMS_LOCK..
RELEASE....
http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_lock.htm#ARPLS66761 -
Table locking in MS SQL Server
Hi
Can anyone help with a locking problem I have. I have a jsp accessing an MS SQL 7 table. The data access has exception handling and the connection and resultset are closed within the finally block, however the table accessed sometimes gets locked preventing any updates to the records. I am using web logics jdbc driver.
Any help would be appreciated.
DaveA quite wide issue.
Firstly, if you don't do locks, you may experince the locks other connections (by other programs) have caused.
If you do your connection with setTarnsactionIsolation( Connection.READ_UNCOMMITTED ), then you should not be influenced by other's locks. But this level is not to be recommended.
The default is Connection.READ_COMMITTED. In this level - and the higher levels as well - you are prevented from even reading a value which another connection has written, but not yet committed.
Much more locking influences, if you want to do an update.
Now, from the transaction logic only that row that is touched would have to be locked. But SQLServer has a kind of "self-deciding" locking behaviour. It starts with row locks, but if certain internal DBMS resources come low, it switches to using page locks and finally even table locks.
MS claims this as an advantage, my impression. If it is, decide on your own.
This is all described quite largely in the SQLServer docs.
We had some large discussions on this here, too. Search for "+lock +sqlserver" to find them. -
Hi all,
Good day..
DB version is 10.2.0.4 I need to write a script which has to kill any table locks in the DB which is more than 10 minutes.
thanks,
baskar.lhi sb,
DECLARE
CURSOR c IS
SELECT c.owner,
c.object_name,
c.object_type,
b.SID,
b.serial#,
b.status,
b.osuser,
b.machine
FROM v$locked_object a, v$session b, dba_objects c
WHERE b.SID = a.session_id AND a.object_id = c.object_id
and c.object_name in (MES.JSW_CRM_C_HR_COIL_INFO,MES.JSW_CRM_C_HR_COIL_INFO);
c_row c%ROWTYPE;
1_sql VARCHAR2(100);
BEGIN
OPEN C;
LOOP
FETCH c INTO c_row;
EXIT WHEN c%NOTFOUND;
l_sql := 'alter system kill session '''||c_row.sessionid||','||c_row.serialid||'''';
EXECUTE IMMEDIATE l_sql;
END LOOP;
CLOSE c;
END;But when executing it i get
1_sql VARCHAR2(100);
ERROR at line 15:
ORA-06550: line 15, column 1:
PLS-00103: Encountered the symbol "1" when expecting one of the following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursorthanks,
baskar.l -
Is there a way to set up the table locks in a display only format(other than sm12).
SM12 calls function ENQUEUE_READ, which in turn calls ENQUE_READ2, which in turn moves down below the ABAP surface into the sea of C when calling the kernel function C_ENQUEUE. Best you can do is probably to build something around the two first functions, if you manage to decode the raw data obtained by the functions. It shouldn't be too difficult; SM12 is fairly straightforward and creating a display program should be feasible.
Unfortunately, even ST05 doesn't yield a result, so it seems (to me at least) that the enqueued entries (locks) reside on the server level, outside of the realm we can reach using SQL...
Regards,
Trond -
About session abnormal termination, table locked question.
Hi all,
i test some table lock,after i run this statement:
select * from testt for update nowait;
i abnormal terminate session, then the table testt will be locking until after 20 minutes,
i checked some document, the parameter of SQLNET.EXPIRE_TIME = 5 in sqlnet.ora file can release that lock, i set with 5,and then test again, but still wait 20 minutes the lock can release, why?I've changed this now to use the URL variable. I am used to using that to go from a results page to a details page where the recordset on the details page is used. I hadn't realised that you could just set a link to:
<a href="addNomination.php?LodgeID=<?php echo($_GET['LodgeID']); ?>">Add Nomination</a>
where there is no recordset on a page, just for the purposes of passing the variable. (Yeah, I know - this is probably really basic!)
I do have one last question on this though - my form action is:
<form method="post" id="form1" action="<?php echo KT_escapeAttribute(KT_getFullUri()); ?>">
And then the link to a NominationAdded page is in the php code at the top of the AddNomination page:
$ins_nominations->registerTrigger("END", "Trigger_Default_Redirect", 99, "NominationAdded.php");
What would be useful would be to pass the URL variable through again, so that on the NominationAdded page I can have a link back to the same Lodge to add another Nomination without finding the Lodge again.
But I'm not sure what the syntax would be, as it included some PHP within existing PHP, so not just:
$ins_nominations->registerTrigger("END", "Trigger_Default_Redirect", 99, "nominationAdded.php?LodgeID=echo($_GET['LodgeID'])");
I assume this must be possible, but not sure of the exact syntax?
Maybe you are looking for
-
Problem while running ejb application in Oracle Application Server
I have created sample ejb application in jdeveloper with ejb 3.1 version, i also created jsp page which will invoke ejb client and display result, its running perfectly in embeded oc4j server, but while deploying application in Oracle application ser
-
"Entitlements are not valid" error message when trying to sync ipa file from iTunes to iPad
Is anyone else getting this error message, "Entitlements are not valid", when trying to sync .ipa file from iTunes to iPad? The issue I'm having is getting the ipa file that was built by the 'Adobe Flash Packager for Iphone' installed into my iPad.
-
Is SOAP Adapter Action field can contain 2 or more "SOAP Actions"
Hi All, I have following scenario:- Step 1. Webmethod(sent price querry with material no)->R/3(search price from tables) step 2. R/3(sent price)->Webmethod step 3. Webmethod(sent quantity)->R/3(document created in sap) step 4. R/3(sent confirmation
-
Universe: can't connect to SAP BW queries
Hi, we are using BO XI 3.1 SP3 together with a SAP BW 7 system. We installed the SAP Integration Kit on the BO server as well as on our local installations and imported the transport files on the BW server. However, in Universe Designer I can't make
-
How i can play smoother HD video files in realtime, when i change the duration in cs6
How i can play smoother HD video files in realtime, when i change the duration in cs6.