× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 04 May 2012 13:42, CRPence wrote:
On 04 May 2012 13:12, John Rusling wrote:
I gotta move on to something else, I don't really know what happened
but - (afawk its only happened this one time) -

Thanks for all the help, I gained more knowledge thru your efforts.


Might be worthwhile to add some more values to the DMPLST and\or add a
DFTPGM to the messages in the MCH0800 range; i.e. presume that if once,
then likely again. <<SNIP>>

Or either instead of or in addition to a DFTPGM, for whatever is the /unexpected/ error condition and as-yet unknown error message that had effected the CL run-time default [function check] exception handler QCL_Function_Check_Exception_Handler to get invoked, change the code in the failing EDPROC to add a MONMSG CPF9999 EXEC(DO). After that, add code to effect whatever logging [e.g. DSPJOBLOG OUTPUT(*PRINT) perhaps after an OVRPRTF QPJOBLOG SPOOL(*YES) HOLD(*YES) OUTQ(secure) to ensure the user can not delete the spooled joblog] and any desirable notification actions before a closing ENDDO. That will cause the MONMSG EXEC handling for the failing statement\command to intercept the error; instead of the run-time CL default handler. And given that the specific error is still unmonitored, the DMPLST and DFTPGM processing are both still allowed to occur as well. This change of course would enable catching the unknown error even if that error is not one of the presumed-to-be MCH0800 range of messages.

After stmt 64600 in the following:
EDPROC in WZZZJBL0 module EDPROC Procedure: EDPROC

After stmt 700 in the following; optional, because prior change should render any change here moot; or just here, not the prior:
J55D0801 in WZZZJBL0 module J55D0801 Procedure: J55D0801

For additional reference, my comments here:
Subject: Re: system reply list entries
Date: Fri, 16 May 2008 12:51:18 -0500
http://archive.midrange.com/midrange-l/200805/msg00887.html

More generally however, with regard to the comment in the original\opening post that "If our in-house log file hadn't revealed this, we would have had no clue that anything was out of the ordinary", the code may benefit from declaring its own Function Check Exception Handler to effect desirable notification\logging; e.g. an entry in the "in-house log file".

So possibly, rather than making the function check handler local to the one request, the MONMSG CPF9999 EXEC(GOTO BadThing) could be a global monitor. However that may not be compatible with the intentions of that processing which "is setup so the program and job will keep executing" according to a later message, because I do not recall that the CL has been updated to allow a 'return from exception' capability. Presumably GOTO is still the only allowed action in a global MONMSG, thus attempts to react similar to how the 'I'=Ignore or 'R'=Retry of the CPA0701 and CPA0702 function, is much more complicated than one might desire trying to effect.

Some good reference reading:

IBM i 7.1 Information Center -> Programming -> Control language -> Messages
_i Monitoring for messages in a CL program or procedure i_
http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rbam6/monmg.htm
-> Monitoring for messages in a CL program or procedure
_i CL handling for unmonitored messages i_
http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rbam6/dfthd.htm
"The system provides default monitoring and handling of any messages you do not monitor. ..."

Regards, Chuck

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.