NonStop Server for Java 7.0 Programmer's Reference
AttachCurrentThread() return JNI_EUNSUPPORTED error if they are called from the
main thread with distributed GC enabled.
NOTE: All the instances of distributed GC in this manual refer to parallel and CMS GC.
• Compile code written in C++ by using the compiler command-line options as explained in
“Linker and compiler options” (page 38).
• NSJ7 provides DLLs. Therefore, you can build your own executable and link it to the JVM DLL,
libjvm.so.
For more information, see invocation_api demo provided with the NSJ7 installation.
• Do not set signal handlers for the following signals:
SIGSEGV◦
◦ SIGPIPE
◦ SIGCHLD
◦ SIGINT
◦ SIGQUIT
◦ SIGTERM
◦ SIGHUP
◦ SIGWINCH
◦ SIGALRM
◦ SIGSTK
◦ SIGILL
• Set the executable to use IEEE floating-point.
NSJ7 does not support the signal-chaining facility implemented in some other vendors' JVMs.
When a program uses the Invocation API to start a JVM, its function returns parameters of type
float or double that are in IEEE floating-point format. Any parameters of type float or double
that are passed to NSJ7 must be in IEEE floating-point format. If such a program requires conversion
between TNS floating-point format and IEEE floating-point format, the Guardian Procedure Calls
Reference Manual documents a series of procedures with names beginning with NSK_FLOAT_ that
can be used to convert float and double data between the two formats.
To run the Invocation API demo, follow the instructions in the README file in directory
/usr/tandem/nssjava/jdk170_h70/demo/invocation_api. Directory location of
invocation_api (for 32–bit and 64–bit NSJ7) demo programs are listed in Table 4 (page 29).
Linker and compiler options
Compiler options
You can use C++ code compiled using either a dialect of version 2 or version 3 for user DLLs
because NSJ7 is built with a C++ version neutral flag (the —set CPlusPlusDialect neutral
option for the linker). To compile using version 2, the following compiler option must be used:
—Wversion2.
—Wversion3 is the default version for TNS/E native compilers, and hence it is not needed to be
defined in the compile command-line.
38 Implementation specifics










