MINI MINI MANI MO
Oracle JVM 12.1 Readme
===========================
What's New in 12.1.0.1 Oracle JVM?
---------------------------------------------
- Multiple-JDK:
-- The default Java VM runtime and compiler have been upgraded from
JDK 5 to JDK 6 update 37.
-- The runtime and compiler corresponding to JDK 7 update 9 are also provided.
-- JDK upgrade/downgrade: The effective JDK in the Database can be upgraded
from JDK 6 (the default) to JDK 7, or downgraded from JDK 7 to JDK 6.
Details are provided in the Oracle Database 12.1 Java Developer's Guide.
- Customizing the Default Java Security:
-- Alternate java.security file can now be added to customize java.security
settings in the Database. See Java Developer's Guide for details.
-- The new routine dbms_java.set_runtime_exec_credentials, added in the
previous release, is documented in the Java Developer's Guide.
Also, a section on secure use of Runtime.exec is added.
The routine dbms_java.set_runtime_exec_credentials allows DBAs
and security administrators to bind Runtime.exec's processes to
OS accounts with restricted power.
- More robust debugger: Some issues in the Java debugger backend have been
fixed to make the Java debugger backend more robust.
- JNDI Support through the Java Directory Service Namespace Provider (OJDS):
A general purpose directory service for storing objects and object references.
All objects stored must implement the java.io.Serializable interface.
- Logging Support through an extended LogManager API.
Java Compatibility
------------------
The compatibility of JDK 6 and JDK 7 in this release has been thoroughly
tested with Oracle's Java Compatibility Kits 6 and 7 respectively. Oracle
is committed to Oracle JVM keeping pace with Java and other Internet standards.
Getting Started
---------------
The Oracle 12.1 Java Developer's Guide (the documentation of the
Oracle JVM product) is available on line.
If you are not familiar with the Oracle JVM, it is important to first
follow the instructions in the documentation to install and configure
the product properly. It is recommended that you follow the examples
presented in the documentation to begin. The demonstrations and
examples in ORACLE_HOME/javavm/demo include a HelloWorld example.
Execution of the HelloWorld example and other examples will ensure that your
installation is complete and that Oracle JVM is properly enabled in
your Database.
Memory resources being used for Java application development and
deployment can vary widely. To ensure proper development-time and
run-time operations, it is a must to understand how to configure the
memory parameters to satisfy your needs. The product documentation
has an extensive discussion on Java Memory Usage.
Useful Tips
-----------
- Troubleshooting Tips
* Errors are often reported in a trace file. Please examine the
trace file as your first step in isolating problems.
- Java Stored Procedure
* Mismatches between call-specification definition and the actual Java
method are only detected at runtime.
* DESCRIBE of package.procedure gives "object does not exist" when
the method has a Java rather than PL/SQL implementation.
DESCRIBE of package lists only PL/SQL procedures and excludes
Java Stored Procedures.
- Loadjava and Dropjava
* The recommended workflow is to first compile Java source with
a client-side Java compiler, and then load the resulting class
binaries into the Database. This workflow will save overall
compiling and loading time. The client-side Java compiler must
be at a Java SE level compatible with Oracle JVM. Java sources
may also be loaded in the Database, which will get compiled by
Oracle JVM.
* It is not supported to load source (.java) and binaries (.class)
together in a jar file. You cannot load source and binary files
for the same class in the same jar file.
* You must drop Java schema objects in the same way that you
first loaded them. For example, individual classes cannot be
dropped from a JAR object. The entire jar must be dropped with
the -jarsasresource command option.
* If you experience problem loading large jar files, you should
consider increasing the value of the SHARED_POOL_SIZE parameter.
The creation of Java schema objects consumes shared pool memory.
* If you suspect that classes are not properly loaded and resolved, you
can examine the state of loaded classes by connecting as the user
who loaded the classes and then executing the following commands:
SELECT * FROM user_objects;
SELECT * FROM user_errors;
Properly loaded and resolved classes should show up with status
of VALID in the user_objects view.
- runjava
* runjava is designed to be used in application development and
prototyping workflows. It is not efficient to be used for
deployment.
* Use of the client side JDBC-OCI driver is not supported in the database and
will fail if used with runjava. There may also be permissions that need to
be granted in order to use the JDBC-THIN driver. Details can be found in
the Oracle JDBC and Java Developers Guides.
Known Problems
--------------
OHA YOOOO