High CPU by Sessions Holding DX Enqueue; Others Waiting 'enq: DX - contention' (Doc ID 1275884.1)

Last updated on MAY 05, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 10.2.0.4 to 11.1.0.7 [Release 10.2 to 11.1]
Information in this document applies to any platform.

Symptoms

High CPU is observed  by sessions attempting to end / abort a distributed transaction.

These sessions are holding a DX enqueue.

The DX enqueue is associated with distributed transaction activity.

Other sessions waiting on the above may exhibit higher than usual waits on related events:
- 'enq: DX - contention' ,      or
- 'inactive transaction branch'

A system state dump which can be generated using using the detail in <Note:125568.1> shows that
those processes which are using CPU have a short stack which is similar to the following; please generate 3 system states 2 minutes apart  :

... <-kssdct()+106<-kqldaso()+66<-ktcrab()+207<-ktdabt()+471<-k2labo()+203<-k2send() ...

k2send() indicates the processing of a 2 phase commit operation;
k2labo() indicates an abort() operation;
...
kssdct()  is connected with deleting a state object .
This operation should be short lived and therefore should not appear in successive systemstates.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms