IBM Support

ORA-4035: UNABLE TO ALLOCATE IN SHARED OBJECT CACHE

Troubleshooting


Problem

ORA-4035: UNABLE TO ALLOCATE IN SHARED OBJECT CACHE

Symptom

 

As part of the post migration activity for Upgrade from 75SP1 to 8.5, which includes migrating existing LONG columns to CLOB, customer was following the Oracle online redefinition process recommended in the upgrade guide. This process involves the following steps:
 
1) Start the redefinition process by executing the script dbms_redefinition.start_redef_table from the Oracle Online Redefinition.
 
2) Copying the dependant objects.
 
3) Run the SYNC_INTERIM_TABLE procedure from the Oracle Online Redefinition process.
 
4) Finish the redefinition.
 
When they ran the same process for YFS_SUB_FLOW table, the process has been hung for almost 5 hours and not yet aborted or completed.
 
Following are the oracle parameters which have been set as per the recommendation of the Upgrade guide and Performance guide.
 
1)    cursor_sharing = FORCE
2)    pga_aggregate_target=2GB
3)    fast_start_mttr_target = 1800s
4)    undo_retention = 14400
5)  hpux_sched_noage =178
6)  disk_asynch_io =True
Error Message

ORA-4035: UNABLE TO ALLOCATE IN SHARED OBJECT CACHE

Resolving The Problem

 

There was a shared memory issue in the logs.   This was the root problem. The metalink document for the memory issue is below: 
Applies to:
Oracle Server - Enterprise Edition - Version: 11.1.0.6
HP-UX Itanium
***Checked for relevance on 20-Jan-2010***
Symptoms
Trace files are being generated with filename *m000*.trc.  The trace files contain the following error:
*** SERVICE NAME:(SYS$BACKGROUND) 2007-11-20 08:12:51.911
*** MODULE NAME:(MMON_SLAVE) 2007-11-20 08:12:51.911
*** ACTION NAME:(JAVAVM JIT slave action) 2007-11-20 08:12:51.911

joez_compile_method beginning compile of method java/lang/String.hashCode
Note:
The method could be be any other java code
<snip>
Error Number = 2
error message:No such file or directory
joxjitexe0 caught: 4035; Aborting
joxjitexe1 caught: 4035;
ORA-04035: unable to allocate 4096 bytes of shared memory in shared object cache "JOXSHM" of size "536870912"
joxjitexe exiting .
Changes
Upgraded to 11.1.0.6
Cause
Error is caused by unpublished bug:
6616186 <Abstract: 11.1PL HPI : ORA-4035: UNABLE TO ALLOCATE IN SHARED OBJECT CACHE "JOXSHM">

On HP Itanium at 11.1.0.6, if the just in time compiler is enabled ( the default) then you will encounter ORA-4035 due to an oversight when the product was released on Itanium since the directories
$ORACLE_HOME/dbs/javanld1 and $ORACLE_HOME/dbs/plsqlnld1 were not created.
This prevented the fix for unpublished Bug 6616186 that was provided for this platform at 11.1.0.6, from working correctly.
.
Solution
There are 2 workarounds available:
1] Create the following directories under the $ORACLE_HOME/dbs:
     javanld1
     plsqlnld1
2] Disable the just in time compiler, set initialization parameter:
    java_jit_enabled = false
The permanent solution is to upgrade to 11.1.0.7 when it is released
NOTE:
When the workaround of creating directories is implemented, there will be a lot of small files generated under $ORACLE_HOME/dbs/javanld1 with name format: 
JOXSHM_EXT_<nn>_TARSG1_0.so*
These files get deleted when the database is shutdown.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

NFX8744

Product Synonym

[<p><b>]Severity[</b><p>];Normal;[<p><b>]Type[</b><p>];NormalFix

Document Information

Modified date:
10 May 2022

UID

swg21560152