等待事件说明

在Oracle中enq: DX 队列锁一般用意保护分布式事务(used to protect distributed transactions),对应的就存在 enq: DX - contention等待事件。  

Id1 / Id2 含义

id2总是0。id1 代表其希望锁定的记录,所以总是distributed transaction elements队列中的一个条记录数(一个整数),由实例参数"distributed_transactions"决定。  
50: waiting for 'enq: DX - contention' [Enq DX-00000005-00000000]
 .
 Short stack dump:
 ksdxfstk()+36<-ksdxcb()+2472<-sspuser()+176<-__sighndlr()+12<-call_user_handle
 r()+992<-sigacthandler()+104<-_syscall6()+32<-sskgpwwait()+196<-ksliwat()+1020
 <-kslwaitns_timed()+48<-kskthbwt()+232<-kslwait()+296<-K2GTElock1()+1160<-k2gg
 et()+524<-ksupucg()+3312<-opiodr()+2608<-ttcpip()+1188<-opitsk()+1532<-opiino(
 7/11/13 Bug 14663113 - QUERY OVER DBLINK GENERATING 2 SESSIONS ON REMOTE LOCKING EACH OTHER
 )+1128<-opiodr()+1536<-opidrv()+828<-sou2o()+80<-opimai_real()+124<-main()+152
 <-_start()+380
 .
 waiting for 'enq: DX - contention' wait_time=0, seconds since wait
 started=0
 name|mode=44580006, transaction entry #=5, 0=0
 blocking sess=0x41055c078 seq=15904
 Dumping Session Wait History
 for 'inactive transaction branch' count=1 wait_time=0.672186 sec
 branch#=0, waited=0, =0
 for 'enq: DX - contention' count=1 wait_time=2.929764 sec
 name|mode=44580006, transaction entry #=5, 0=0
 for 'enq: DX - contention' count=1 wait_time=2.929774 sec
 name|mode=44580006, transaction entry #=5, 0=0
 for 'inactive transaction branch' count=1 wait_time=0.976637 sec
 

1.1    DX, Distributed TX

How Many Resources: 1 How Many Locks: 1 per  process that tries to do a distributed transaction. How Many Users: 1/ instance Who Uses: RECO’s When Used: Used to ensure that only one process is using a  distributed transaction slot at a time. Id1, Id2 Combination: Slot Number (of distributed transaction table), Always 0 Lock Value Block: Not Used. Init.ora Parameters: distributed_transactions. (Distributed Database Option) Scope: Local Enqueue. Deadlock Sensitive: Yes. Operation: Synchronous.