Getting Control of the Oracle Java Virtual Machine - Page 2
April 29, 2003
Java Virtual Machine Parameters
There are four parameters, which directly control the JVM:
Shared_pool_size is thememory used by the class loader during the loading and resolving Java classes (jars). Shared Pool memory requirements for class load are 8KB per class.
The Java load procedure (initjvm.sql) loads quite large number of the classes so recommended settings for shared_pool_size is around 50MB.
Java_pool_size parameter is theamount of memory allocated by the JVM memory manager for all session-specific Java code and data. Memory is not allocated at once, but in chunks during runtime. For dedicated database connections, Java pool is used for a shared part of each Java class. In addition, for MTS database connections, Java pool is used for some per session UGA memory (static session variables).
Java_soft_sessionspace_limitparameterdefines the Java memory soft limit for the session, allocated at session startup. The default value is 1MB. When the session exceeds this size, a trace file is generated.
Java_max_sessionspace_size parameter defines the Java memory hard limit for the session. When the session exceeds this value, the session will be closed with an error "ORA-29554 Unhanded Java out of memory condition".
Java_max_sessionspace_limit is a hidden parameter with a value ranging from 0 to 4Gb; the default value is 4GB. Version 8.X had a bug in which any attempt to start-up the database with more than 2GB for Java_max_session_space would fail.
When the Java option is not used, java_pool_size can be resized to the minimal value (1MB on version 8.1.5 and 32Kb on versions 8.1.6 and 8.1.7).
The Oracle database version 9.01 needs a larger java_pool_size because some database level triggers use the java pool for execution after every CREATE or ALTER database command.
Minimal and recommended JVM related database memory parameters:
shared_pool_size >= 60Mb -> recommended 65 MB java_pool_size>= 30Mb -> recommended 50 MB java_soft_sessionspace_limit=0 -> meaning default 1 MB is used, java_max_sessionspace_size=0 -> meaning default of 4GB is used