Processing MODPLSQL Application Crashes Database with ORA-04030 / ORA-04031 Out of Process Memory Errors
Last updated on MARCH 10, 2017
Applies to:Portal - Version 22.214.171.124.0 and later
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
PL/SQL - Version 10.2.0.1 and later
Oracle HTTP Server - Version 126.96.36.199.0 and later
Information in this document applies to any platform.
Oracle Database is crashing periodically with the following errors in the Database alert log:
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3
ORA-04030 / ORA-04031 Out of Process Memory
Database alert log will be located in a place such as /u0/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
When first getting ORA-04030 errors, you should review your application code to determine if pl/sql collections or use of pl/sql variables leads to high memory usage. The trace or incident file should have the sql or pl/sql that was running at time of error. This memory growth can be controlled by good programming practices. As an example, use LIMIT clause with BULK COLLECT.
Process sizes can be monitored via sql against database views as listed in <Note 399497.1> FAQ: ORA-4030 [Video]
The problem continues in spite of efforts to tune for load or custom code optimization.
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