-XCEEHDLR
(31-bit z/OS® only)
Controls Eclipse OpenJ9™ VM Language Environment® condition handling.
Syntax
-XCEEHDLR
Explanation
Use the -XCEEHDLR
option if you want the new behavior for the Java™ and COBOL interoperability batch mode environment, because this option makes signal and condition handling behavior more predictable in a mixed Java and COBOL environment.
When the -XCEEHDLR
option is enabled, a condition triggered by an arithmetic operation while executing a Java Native Interface (JNI) component causes the VM to convert the Language Environment condition into a Java ConditionException
.
When the -XCEEHDLR
option is used the VM does not install POSIX signal handlers for the following signals:
SIGBUS
SIGFPE
SIGILL
SIGSEGV
SIGTRAP
Instead, user condition handlers are registered by the VM, using the CEEHDLR()
method. These condition handlers are registered every time a thread calls into the VM. Threads call into the VM using the Java Native Interface and including the invocation interfaces, for example JNI\_CreateJavaVM
.
The Java runtime continues to register POSIX signal handlers for the following signals:
SIGABRT
SIGINT
SIGQUIT
SIGTERM
Signal chaining using the libjsig.so
library is not supported.
When the -XCEEHDLR
option is used, condition handler actions take place in the following sequence:
- All severity 0 and severity 1 conditions are percolated.
- If a Language Environment condition is triggered in JNI code as a result of an arithmetic operation, the VM condition handler resumes executing Java code as if the JNI native code had thrown a
com.ibm.le.conditionhandling.ConditionException
exception. This exception class is a subclass ofjava.lang.RuntimeException
.
Note: The Language Environment conditions that correspond to arithmetic operations areCEE3208S
throughCEE3234S
. However, the Language Environment does not deliver conditionsCEE3208S
,CEE3213S
, orCEE3234S
to C applications, so the VM condition handler will not receive them. - If the condition handling reaches this step, the condition is considered to be unrecoverable. RAS diagnostic information is generated, and the VM ends by calling the
CEE3AB2()
service with abend code 3565, reason code 0, and cleanup code 0.
Restriction: You cannot use -Xsignal:userConditionHandler=percolate
and -XCEEHDLR
together.