The DBMS_XMLPARSER and DMBS_XMLDOM Packages Consume Execessive PGA (Doc ID 1116862.1)

Last updated on AUGUST 16, 2010

Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.2 and later   [Release: 10.2 and later ]
Information in this document applies to any platform.

Symptoms

When repeatedly calling the packages dbms_xmlparser and dbms_xmldom, a memory leak is seen which can consume all of the memory on the host until it crashes the database.

The heap dump generation will show that we are leaking in the session heap area, particularly the "qmxdpls_subhea" subheap.


For Example:
---> HEAP DUMP heap name="session heap"  desc=ffffffff7a326720
Type Count Sum Average
~~~~ ~~~~~ ~~~ ~~~~~~~
free 17 9648 567.53
freeable 22755 78505696 3450.04
perm 8 48616 6077.00
recreate 22 37200 1690.91

BreakDown
~~~~~~~~~
Type Count Sum Average Percent
~~~~ ~~~~~ ~~~ ~~~~~~~ ~~~~~~~
Free(heap.awk) 17 9648 567.53 0.01
lob ctl struct 2598 602832 232.04 0.77
qmxdpls subhea 19510 76378928 3914.86 97.17 <<---Leak here
koh-kghu sessi 41 454424 11083.51 0.58
qmpa subheap 203 465384 2292.53 0.59
kolr heap ds i 18 414008 23000.44 0.53
kkspsc0:kxsc 19 15200 800.00 0.02
perm 8 48616 6077.00 0.06
kkspbd0:kxsc 6 4800 800.00 0.01
kgicu 8 656 82.00 0.00
kgsc ht segs 272 10128 37.24 0.01
kgicttab 2 144 72.00 0.00
kxsFrame4kPage 11 45584 4144.00 0.06
kxsFrame16kPage 1 16432 16432.00 0.02
kokacau kokahe 2 992 496.00 0.00
kxs-krole 12 1168 97.33 0.00
kgict 2 136 68.00 0.00
kxs-heap-p 6 6288 1048.00 0.01
ktspsrchche: L1 1 16352 16352.00 0.02
ktspsrchche: L2 1 32680 32680.00 0.04
ktspsrchche: DB 1 4120 4120.00 0.01
koh-kghu sessio 11 25272 2297.45 0.03
...
...
...

Total = 78601160 bytes 76758.95k 74.96MB

---> HEAP DUMP heap name="qmxdpls_subhea" desc=ffffffff7a01a0b8
Type Count Sum Average
~~~~ ~~~~~ ~~~ ~~~~~~~
freeable 355785 59789784 168.05
recreate 5192 15786376 3040.52
perm 3 22344 7448.00

BreakDown
~~~~~~~~~
Type Count Sum Average Percent
~~~~ ~~~~~ ~~~ ~~~~~~~ ~~~~~~~
Free(heap.awk) 5357 19144080 3573.66 25.32
qmuba 2597 540176 208.00 0.71
qmxdplsArrayGet 168570 6888936 40.87 9.11
qmxdplsArrayNI0 168570 6784320 40.25 8.97
qmxlu subheap 10690 41196784 3853.77 54.49
qmxdplsArray ne 2597 207952 80.07 0.28
qmxlu F alloc 2595 809768 312.05 1.07
XMLContextInitO 1 4144 4144.00 0.01
perm 3 22344 7448.00 0.03

Total = 75598504 bytes 73826.66k 72.10MB

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