Considerations for using IBM Technology for Java Virtual Machine
Be aware of these considerations when using IBM® Technology for Java™ Virtual Machine.
Java Native Interface considerations
If you have integrated language environment (ILE) programs that use Java Native Interface (JNI) functions, you must compile these programs with teraspace storage enabled. Because teraspace storage is not enabled by default, it is likely that you need to recompile. This is necessary because the Java object is in PASE for i storage, which is mapped on top of teraspace storage, and a teraspace storage pointer is returned. Also, the JNI functions, such as GetxxxArrayRegion, have a parameter to a buffer where the data is placed. This pointer must point to teraspace storage to enable the JNI function in PASE for i to copy the data into this storage. If you have not compiled your program with teraspace storage enabled, you will receive the escape message MCH4443 (Invalid storage model for target program LOADLIB).
Adopted authority
Adopted authority for Java programs is not supported by IBM Technology for Java Virtual Machine.
Diagnostic messages and files
When ILE native methods encounter problems, you will see messages in the job log. When IBM Technology for Java Virtual Machine or PASE for i native methods encounter problems, they will dump diagnostic files into the IFS. There are several types of these "core files," including core.*.dmp, javacore.*.txt, Snap*.trc, and heapdump.*.phd. The files range in size from tens of KB up to hundreds of MB. In most cases, more severe problems produce larger files. The larger files can quickly and quietly consume large amounts of IFS space. Despite the space these files consume, they are useful for debugging purposes. When possible, you should preserve these files until the underlying problem has been resolved.
For more information, see Advanced control of dump agents in the Java Diagnostics Guide.
Migration considerations
When migrating from the Classic JVM, which was the default 64-bit virtual machine that existed in IBM i 6.1, to the 32-bit version of IBM Technology for Java, consider that there may be limitations when using the 32-bit environment. For example, the amount of addressable memory is much smaller. In 32-bit mode, the Java object heap cannot grow much larger than 3 gigabytes. You will also be limited to running approximately 1000 threads. If your application requires more than 1000 threads or a Java object heap larger than 3 gigabytes use the 64-bit version of IBM Technology for Java. See Support for multiple Java Development Kits (JDKs) for more information.
If you are using classic Java version: | Then possible IBM Technology for Java replacements include: |
---|---|
Java Developer Kit 1.4 (5761-JV1 option 6) |
|
Java Developer Kit 5.0 (5761-JV1option 7) |
|
Java Developer Kit 6 (5761-JV1option 10) |
|