How to Control Native Compilation in the Oracle JVM Just-in-Time Compiler (JIT)
(Doc ID 1309858.1)
Last updated on JANUARY 31, 2022
Applies to:Oracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Information in this document applies to any platform.
Beginning with 11g Release 1, Oracle Database replaced NCOMP with the JIT compiler. Oracle Database now examines the execution profile of Java methods which are running or have run within the database and determines which might be better served by being compiled into native machine code. The column IS_COMPILED in DBA_JAVA_METHODS indicates whether or not the method has been compiled by the JIT.
When encountering a problem executing JIT compiled code, machine-dependent code within the JVM, sometimes it may be helpful to test the same Java method using byte code (otherwise referred to as interpreted) instead. The parameter JAVA_JIT_ENABLED controls which type of code is executed. This may be specified at either the SYSTEM or the SESSION level. There are three situations worth discussing here:
- How to execute an interpreted method when JAVA_JIT_ENABLED=TRUE at the system level.
- How to execute a JIT compiled method when JAVA_JIT_ENABLED=FALSE at the system level.
- How to tell the JVM not to compile any more methods when JAVA_JIT_ENABLED=TRUE at the system level.
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