Javavm Component Invalid and ORA-04031 Reported for "java pool" (Doc ID 1448032.1)

Last updated on JULY 17, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 10.2.0.3 and later
Information in this document applies to any platform.
***Checked for relevance on 16-Jun-2017***

Symptoms


After making changes (such as installing Intermedia and Spatial) the JavaVM shows INVALID and numerous ORA-04031 erros occur especially in conjunction with any attempts related to java in the database (such as loading/creating a simple java stored procedure).

The alert log may show an error such as:

ORA-04031: unable to allocate 4096 bytes of shared memory ("java pool","JAVA$POLICY$SHARED$00000010SYS","joxlod exec hp","SROState")


And a trace file for the ORA-04031 may show a stack of:

dbms_java.longname('foo'); begin null; end;
hash=6ae4feb0a523207decaa5a3223ceeb38
parent=ADD34FA8 maxchild=01 plk=656538E8 ppn=n
cursor instantiation=629D51E0 used=1333643174
child#0(AA40866C) pcs=ADD351AC
clk=6407CE90 ci=A8DE4EE0 pn=AC5254F4 ctx=A7096B7C
kgsccflg=0 llk[629D51E4,629D51E4] idx=0
xscflg=c0100276 fl2=c020000 fl3=2a200c fl4=100
Frames pfr 7A172068 siz=240 efr 7A172018 siz=232
kxscphp 629DDEFC siz=1000 inu=0 nps=140
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst <- ksm_4031_dump <- ksmasg <- kghnospc <- kghalo
<- 6200A380 <- 62134060 <- 6200906D <- 6207B191 <- 621340A9
<- 62035791 <- 62035A43 <- 62036271 <- 62037DB8 <- 6212054C
<- 621A8AC8 <- 621A9455 <- 621A887E <- 621E4667 <- 621E4A0B
<- 621A8649 <- 6218CCA7 <- 620B67BE <- 620B6992 <- 61FF9B6C
<- 61FF4419 <- 61FF68DA <- joxldn <- VInfreq___PGOSF31 <- 0__kqlplslod
<- PGOSF309__kqlmcdl <- kqllod <- kglobld <- kglobpn <- kglpim
<- 620051D5 <- 62005FA6 <- 621B0C21 <- 6200906D <- 6207B191
<- 621B0C65 <- 620A525C <- 62114AD6 <- 6206929F <- 62069D16
<- 6206A159 <- 62156D50 <- 7A5A106C <- 7A60EA08

==============================
Memory Utilization of Subpool 1
================================
Allocation Name Size
_________________________ __________
"free memory " 405312
"miscellaneous " 0
"joxs heap " 1463616
"joxlod exec hp " 23296896


the registry might report something similar to:

JServer JAVA Virtual Machine 10.2.0.3.0 INVALID


Finally, the reported details in jvm_stats.log generated by running the script from <Note 456949.1> "Script to Check the Status of the JVM within the Database" shows a low java_pool_size ie 24M.

Cause

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