Support Article

ORA-04031: unable to allocate 32 bytes of shared memory



When AgentBulkProcessing is running a database query, the execution results is 100% memory consumption on the database.

Error Messages

ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select name,password,datats#...","SQLA","tmp")

Steps to Reproduce

Run applications in production

Root Cause

A defect or configuration issue in the operating environment.  
Oracle docs note this about ORA-04031:
ORA-04031: unable to allocate string bytes of shared memory
  • Cause: More shared memory is needed than was allocated in the shared pool.
  • Action: If the shared pool is out of memory, either use the dbms_shared_pool package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the INIT.ORA parameters

    "shared_pool_reserved_size" and "shared_pool_size".

    If the large pool is out of memory, increase the INIT.ORA parameter "large_pool_size".


Make the following change to the operating environment: 

The database pool needs to be resized to eliminate this issue.  See Oracle documentation regarding shared pool sizing.


Published October 14, 2016 - Updated October 18, 2016

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.