APPLIES TO:
Oracle Server - Enterprise Edition - Version: 10.2.0.5<max_ver> and later [Release: 10.2 and later ]
Information in this document applies to any platform.
SYMPTOMS
The following symptoms are required for this article to be applicable :-
a) The database version is specifically 10.2.0.5
b) The database sees many DROP/CREATE activities
c) In ORA-4031 trace files, we will see subpool information similar to :-
Memory Utilization of Subpool 1
===========================
Allocation Name Size
"free memory " 107844008
"obj stat memo " 413473896 <==== large allocations
There might be many subpools, but the pattern to look for is that we see plenty of free memory and high values for allocation "obj stat memo"
d) The following SQL queries will return results that continually increase :-
select * from v$sgastat where name = 'obj stat memo';
select count(distinct fts_objd) from x$ksolsfts;
e) The following SQL will show a continual steady increase for "obj stat memo"
SELECT * FROM
(SELECT NAME, BYTES/(1024*1024) MB
FROM V$SGASTAT
WHERE POOL = 'shared pool'
ORDER BY BYTES DESC)
WHERE ROWNUM <= 10;
f) Using _disable_objstat_del_broadcast=false stops the ORA-04031 errors and the SQL in (D) and (E) no longer shows an increase on "obj stat memo"
This article is solely written for 10.2.0.5. If any other version or PSR is being used the article will not be appropriate. For versions prior to10.2.0.5, Note.9737897.8 can be considered but this is beyond the scope of this document.
CHANGES
The database might have been patched or upgraded to 10.2.0.5 but the problem can also be seen on a database that has only ever existed as 10.2.0.5.
CAUSE
On 10.2.0.5 an architectural change was made to switch off the publishing of "obj stat del channel" messages by default. This can lead to excessive growth of "obj stat memo" memory allocation.
SOLUTION
On 10.2.0.5, and only for 10.2.0.5, we have introduced the hidden parameter :-
If you are seeing ORA-04031 related to the symptoms reported then this parameter can be set to FALSE and by doing so we will no longer see the growth of "obj stat memo" that potentially leads to ORA-04031.
This parameter has been instructed by development to be used as the solution to ORA-04031 with the symptoms reported. There is no patch fix and no patch fix will be made. The hidden parameter will not cause any problems to the database and it must not be accidentally left within the init/spfile when/if the database is upgraded as startup would fail with :-
ORA-01078: failure in processing system parameters
Again the parameter is ONLY for 10.2.0.5.