The component developer should also be aware that native code exposes the system to potential instabilities that do not exist in pure Java code. The code in a native library runs in the same process as the JVM, and errors in the native code can corrupt JVM memory and data structures. Such code can also cause the JVM process to terminate abruptly, causing Isight to exit without warning. The JVM cannot be protected from errant native code libraries, so it is particularly important that such libraries be robust and well tested, particularly when used in the SIMULIA Execution Engine distributed execution environment. Native code libraries also allocate native memory in the same process as the JVM. It is possible for a memory leak in native code to consume the available process memory and cause Java out-of-memory errors. |