Here's the response I got from Oracle so far on the issue, which goes with what we're seeing. I'm waiting to hear back if there are any errors that RUNUBE does send proper messages back to the OS for.
[ QUOTE ]
RUNUBE is a stand-alone program within EOne which was fully implemented in C. Like any other programs, RUNUBE also returns a ‘return-value’ to the Operating System that is either a success or failure. Usually, we use signal handlers to catch any necessary signals (like abnormal termination) and take the appropriate action (like clean up, proper diagnostic message to the user etc). According to IBM’s specification, we changed (few years ago) our signal handlers to exception handlers for better error reporting.
We use #pragma exception_handler directive to look for any asynchronous signals that can occur during the program execution and dump the call stack in the logs as necessary. For every failure condition on RUNUBE, we use abort( ) API to explicitly generate SIGABRT signal. We do this because calling abort( ) and generating SIGABRT gives the easiest way of invoking a cancellation request that can in turn trigger a cancel handler.
For example, following are the few examples of ‘error conditions’ for RUNUBE which would generate SIGABRT signal.
1) Providing insufficient number of command line
2) Entering invalid user name (or) password
3) Could not get the bootstrap environment
4) Could not get the password token information
5) Could not initialize the environment (for example wrong environment name)
6) Entering a wrong report (or) version name
7) Could not open tables like F983051, F986110 etc
All the above mentioned scenarios would generate SIGABRT signal so that the cancel handler for AS400 can be invoked to take the appropriate action (like clean up and dumping the call stack information). When SIGABRT is raised from RUNUBE (for the above mentioned few reasons), a corresponding C2M1601 Escape message would be logged in the AS400 job log. But this does not necessarily mean a failure of the job.
For example, I entered a wrong user name for my RUNUBE command on AS400. It displayed a error message in the screen like “runube: jdeSecGetExtendedTokenByPwd failed” and in the job log it displayed a C2M1601 Escape message indicating a abnormal termination (SIGABRT) signal was raised from RUNUBE. However, from the AS400 operating system’s perspective the job submitted to its job queue was successfully run and hence there was a completion message.
[/ QUOTE ]