这种情况在我们的应用程序中发生了很多次,在一些数据库错误之后,事务被 SQL * Net break / reset to client 状态锁定。像这个日志吼叫:
SID INST_ID STATUS LAST_WAIT_S S_IN_WAIT WAIT_STATE LOCKWAIT SID_LOCKING L_INST_ID START_TRANS CURS EVENT
----- -------- -------- ----------- ----------- ------------------------------ -------------------- ----------- --------- -------------------- ---- --------------------------------
280 1 INACTIVE .00 1550.02 * waiting (Application) *** 2015-07-14-10.52.10 49 SQL*Net break/reset to client
366 1 ACTIVE .00 1475.45 * waiting (Application) 000000009AF9E380 *** 280 1 2015-07-14-10.53.21 47 enq: TM - contention
318 2 ACTIVE .00 1168.95 * waiting (Application) 000000009AF954A8 *** 280 1 2015-07-14-10.58.29 28 enq: TM - contention
154 2 ACTIVE .00 1168.49 * waiting (Application) 000000009AFE6F50 *** 2015-07-14-10.58.32 46 enq: TM - contention
288 1 ACTIVE .00 1031.46 * waiting (Application) 000000009D99BE88 366 1 2015-07-14-11.00.49 34 enq: TX - row lock contention
114 1 ACTIVE .00 975.45 * waiting (Application) 000000009D996598 318 2 2015-07-14-11.01.45? 46 enq: TX - row lock contention
108 1 ACTIVE .00 939.54 * waiting (Application) 000000007A35DDD0 *** 2015-07-14-11.01.57 7 enq: TM - contention
378 2 ACTIVE .00 794.82 * waiting (Application) 000000009D997AC8 366 1 2015-07-14-11.04.45 19 enq: TX - row lock contention
322 2 ACTIVE .00 637.51 * waiting (Application) 000000009B3DF6C0 280 1 2015-07-14-11.07.21 42 enq: TM - contention
179 2 ACTIVE .00 551.71 * waiting (Application) 000000009AFA1488 108 1 2015-07-14-11.08.48 52 enq: TM - contention
322 1 ACTIVE .00 547.60 * waiting (Application) 000000009AFBD2B8 2015-07-14-11.08.52 44 enq: TM - contention
275 1 ACTIVE .00 542.01 * waiting (Application) 000000009AFE6858 2015-07-14-11.08.59 34 enq: TM - contention
374 2 ACTIVE .00 517.92 * waiting (Application) 000000009D997BA8 318 2 2015-07-14-11.09.22 29 enq: TX - row lock contention
360 2 ACTIVE .00 477.94 * waiting (Application) 000000009AFA31B0 2015-07-14-11.10.01 17 enq: TM - contention
168 1 ACTIVE .00 397.37 * waiting (Application) 000000009AFAE938 2015-07-14-11.11.23 49 enq: TM - contention
187 1 ACTIVE .00 352.04 * waiting (Application) 000000009D99C220 108 1 2015-07-14-11.12.08 36 enq: TX - row lock contention
166 2 ACTIVE .00 282.10 * waiting (Application) 000000009D99AC10 154 2 2015-07-14-11.13.18? 25 enq: TX - row lock contention
20 1 ACTIVE .00 270.32 * waiting (Application) 000000009A3EB828 2015-07-14-11.13.30 18 enq: TM - contention
363 1 ACTIVE .00 .00 * waiting (Idle) --- --- 23 SQL*Net message from client
162 1 ACTIVE .00 .01 * waiting (User I/O) --- --- 28 db file sequential read
286 2 ACTIVE .00 .01 * waiting (User I/O) --- --- 23 db file sequential read
215 1 ACTIVE .00 .02 * waiting (User I/O) --- --- 8 db file sequential read
230 1 ACTIVE .00 .01 * waiting (User I/O) --- --- 21 db file sequential read
数据库中非活动事务的错误是 ORA-00001:违反了唯一约束。
我搜索了很多,但我没有找到任何解释这个错误的原因以及造成这种锁定等待的原因。