Reliability

Components that you develop using native code can cause instabilities, such as memory corruption and leakage. To prevent errors and to minimize the potential for Isight to terminate without warning, any code that you develop must be robust and thoroughly tested.

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.