On 02 May 2012 14:44, John Rusling wrote:
I did get dsplog to reveal this -
CPF1164  00  COMPLETION   Job 812082/UROPER/CNSRDC9 ended on 05/01/12 at 16:13:24; .889 seconds used; end code 0
                       CNSRDC9    UROPER     812082 QWTMCEOJ     0000 05/01/12 16:13:24.379108 UROPER
As the job is no longer in the system, because it "thinks" it ran normally
I can't do the dspjoblog against it as Chuck suggested but I did post the
spool files generated yesterday.
QPDSPJOB1 spool file -
http://code.midrange.com/e48c1a3d72.html
QPDSPJOB2 spool file -
http://code.midrange.com/d446885f24.html
  Not that it would necessarily be relevant\helpful, but the *SECLVL 
details of the completion message does contain additionally, at least a 
secondary return\ending code and number of routing steps.  FWiW, the 
OUTPUT parameter of DSPLOG allows alternates to just *PRINT which only 
gives first level.
  This issue reminds me that many times I had thought that the DSPJOB 
taken as part of the "Dump List" information should include some details 
of the joblog; e.g. the effective F6=Print output for the DSPMSG of the 
message that gave origin.  Anyone who cares might issue a Design Change 
Request.  Instead of ever pursuing anything, I always just added a 
"Default program" (DFTPGM) and\or added a *JOBINT to messages I was 
interested in.  Only now I am wondering why there is not a *JOBLOG 
available on the DMPLST parameter; that was always the first thing my 
DFTPGM would generate.  Anyhow...
  The first DSPJOB information suggests that the CLLE program EDPROC in 
library WZZZJBL0 encountered an exception that was unmonitored, and the 
exception message received was defined with the "Data to be dumped" set 
to DMPLST(*JOB).  The control from the bound procedure 
QCL_Function_Check_Exception_Handler passes to the common default CL 
run-time *FC handler program QCLXERR to send the message CPA0702 to the 
user [or QSYSOPR]; presumably sent to *EXT for this interactive job 
[i.e. "Type of job"=INTER].
  It appears this CLLE program EDPROC was invoked with recursion by the 
RPG program EDCNW1; i.e. the stack shows EDPROC calling EDCNW1 which 
then calls EDPROC.  That may or may not be expected.?
  Because the job was running with "Inquiry message reply" handling of 
INQMSGRPY(*SYSRPYL), both of the incidents may have been auto-replied by 
the system reply list; review WRKRPYLE to see the settings.  If there is 
no explicit entry nor generic [e.g. CPA0700] reply defined that should 
have auto-responded, then very probably the first response was an ignore 
and the second was to ignore or cancel; i.e. seems unlikely that the 
default setup to have the message generate a dump was in effect, else a 
QPPGMDMP would have appeared in the list of spools, and the first reply 
was unlikely a retry, else the second error would presumably have looked 
the same instead of the apparent "percolating" of the message.
  Hmmm.. The time difference from the first to the second of is small, 
16:12:17 to 16:12:22, but almost seems too long to infer directly a 
simple percolation of the error.  All that had to happen was reclaiming 
the *NEW\14 activation group.
  Of possible note [I have never used nor paid any attention to] the 
"Program return code" which in this scenario is 2 in the first incident 
and 1 in the second.  The help text suggests that if "the job contains 
any RPG/400, COBOL, DFU, or sort utility programs, the completion status 
of the last program that has finished running is shown; otherwise a 
value of zero is shown."  The program EDCNW1 in WZZZJBL0 which was 
running in the *NEW\14 activation would have been the last RPG program 
to complete running in the second incident; that was the RC1.  The prior 
programs in the stack would have to be reviewed for the type of program 
to know which had the RC2.
V7R1M0
 Program                 Stmt   Inst   Module or ...    ActGrp  CB
 QCMD       QSYS                04FA                    Dft\01
 J55DDISC   WZZZJBL0     1200   0013                    Dft\02
 J98INITA   JDFOBJ       13700  00EB                    Dft\02
 J98INITV   JDFOBJ       16500  00D3                    Dft\02
 P00MENU    JDFOBJ              066A                    Dft\02
 J55D0801   WZZZJBL0                   J55D0801  QTEMP  Dft\02  Y
    Procedure: _CL_PEP
 J55D0801   WZZZJBL0     700           J55D0801  QTEMP  Dft\02  N
    Procedure: J55D0801
 // second failure popped here; called QCLXERR per normal, as below
 J55D0801   WZZZJBL0                   J55D0801   QTEMP Dft\02  N
    Procedure: QCL_Function_Check_Exception_Handler
 // first  failure went here; i.e. ignore the above entry
 EDPROC     WZZZJBL0                   EDPROC    QTEMP  New\14  Y
    Procedure: _CL_PEP
 EDPROC     WZZZJBL0     64600         EDPROC    QTEMP  New\14  N
    Procedure: EDPROC
 EDCNW1     WZZZJBL0                   EDCNW1    QTEMP  New\14  N
    Procedure: _QRNP_PEP_EDCNW1
 EDPROC     WZZZJBL0                   EDPROC    QTEMP  New\14  N
    Procedure: QCL_Function_Check_Exception_Handler
 QCLXERR    QSYS                00C6                    Dft\01  N
 QMHSNINQ   QSYS                07DE                    Dft\01  N
Regards, Chuck
As an Amazon Associate we earn from qualifying purchases.