ORA-4031 and large allocation of "kwqmncal: allocate buffer" in shared pool
(Doc ID 1071074.1)
Last updated on SEPTEMBER 26, 2019
Applies to:Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Oracle Database - Enterprise Edition - Version 10.2.0.1 to 126.96.36.199 [Release 10.2 to 11.2]
Information in this document applies to any platform.
NOTE: In the images and/or the document content below, the user information and data used represents fictitious data.
Any similarity to actual persons, living or dead, is purely coincidental and not intended in any manner.
Error reported in trace file or alert log:
ORA-04031: unable to allocate 4080 bytes of shared memory ("shared pool",
"unknown object","sga heap(1,0)","kwqmncal: allocate buffer")
The 4031 trace file shows high memory usage for heap allocations of type "kwqmncal: allocate buffer".
This type of allocation is used with AQ feature.
Memory Utilization of Subpool 1
Allocation Name Size
kwqmncal: allocate buffer 777,596,512 <== shows high value
free memory 48,305,232
In this case jobs were also failing with ORA-04063.
Job trace files show error on trying to run job:
error 4063 happened during job cache initialization
The view DBA_ERRORS showed ORA-04063 occurring on queue tables:
select * from DBA_ERRORS
where text like '%4063%';
AQ$<QUEUE_TABLENAME> ORA-04063: table "<QUEUE_TABLENAME>" has errors
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document