My Oracle Support Banner

How to resolve ORA-04030: out of process memory when trying to allocate 248 bytes (kxs-heap-w,ctx:keswxCurPrepare) Errors on IBM AIX Platforms (Doc ID 1934141.1)

Last updated on JUNE 28, 2024

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.4 and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
IBM AIX on POWER Systems (64-bit)

Goal

This note helps you in resolving the ORA-04030 errors with upgrade or any other activity on the database. 

1.  The alert log might contain the following errors 

ORA-04030: out of process memory when trying to allocate 82456 bytes (pga heap,control file i/o buffer)
ORA-04030: out of process memory when trying to allocate 4064 bytes (PLS CGA hp,pdzdM80_Allocate_Block)
ORA-04030: out of process memory when trying to allocate 248 bytes (kxs-heap-w,ctx:keswxCurPrepare)

2.  The Incident trace file might contain the following errors

ORA-04030: out of process memory when trying to allocate 248 bytes (kxs-heap-w,ctx:keswxCurPrepare)

2014-09-30 12:02:46.042
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=aqu3vk9zsj4aa) -----
update procedure$ set audit$=:2,options=:3 where obj#=:1

3.  The failing functions and the callstack is similar to the following

Function List   (to Full stack)   (to Summary stack)

     skdstdst <- ksedst1 <- ksedst <- dbkedDefDump <- ksedmp
        <- ksfdmp <- dbgexPhaseII <- dbgexExplicitEndInc <- dbgeEndDDEInvocatio <- nImpl
         <- dbgeEndDDEInvocatio <- kghnospc <- kghalf <- keswxCurPrepare <- keswxCurPushMonitor
          <- ing <- kews_sqlst_push_mon <- itoring <- kews_sqlst_flush_le <- vel
           <- kews_sqlst_flush <- kews_timeout <- ksu_dispatch_tac
            <- updrow <- qerupFetch <- updaul <- updThreePhaseExe
             <- updexe <- opiexe <- opiodr <- rpidrus <- skgmstack
              <- rpidru <- rpiswu2 <- rpidrv <- rpiexe <- kqlobjchg
               <- kqlchg <- kglfls1 <- ktcCommitTxn <- ktdcmt <- k2lcom
                <- k2send <- xctctl <- xctCommitTxn <- opiexe <- opiosq0
                 <- kpooprx <- kpoal8 <- opiodr <- ttcpip <- opitsk
                  <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real
                   <- ssthrdmain <- main <- start

4.  The uploaded RDA or the ulimit -a output shows the following

Ulimit
Using: /usr/bin/ksh -f -c "ulimit -a"
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         131072
stack(kbytes)        32768
memory(kbytes)       32768
coredump(blocks)     1
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user)  unlimited

Solution

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
Goal
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.