× 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 19-Mar-2015 09:59 -0500, David Gibbs wrote:

MCH1202 Escape 40 03/10/15 13:47:09.829038 ExSndPm 000000 QZRCSRVS QSYS *STMT

So, a symptom string might be composed as, essentially:

msgMCH1202 "Decimal data error."
F/ExSndPm x/000000
T/QZRCSRVS TM/QZRCRPC TP/CallProgram stmt/188

Nothing found obviously to be documented as a match; finding nothing beyond what I already posted previously showing something similar, and none of those reference any PTFs, just document the /similar/ incidents.

What was the PCML generated for the [program call method] invocation, and what is the prototype for the procedure? That info might help a reviewer to understand better, what processing might be failing with that symptom.

The MCH1202 is IIRC, defined [as-shipped] to effect production of a QPDSPJOB spool file if the condition was unmonitored; that, per the *JOB special-value specification on the Data To Be Dumped (DMPLST) [i.e. ADDMSGD MCH1202 DMPLST(*JOB)]. Hopefully that error was manifest as unmonitored in the described scenario; such that if that spooled output was generated due to an unmonitored condition, then posting that [esp. the program stack portion] could be helpful. That effect would imply that the condition also can be /trapped/ or just have additional information logged on recurrence; if DMPLST(*JOB) was triggered, then info such as the LIC job dump for which the effective LIC program stack would be included [adding *JOBINT to the DMPLST()] thus giving other information that might better reveal the source of the x0C02 exception\condition, and to effect trapping the condition, the Default Program To Call (DFTPGM) parameter can assign an exit-program.

If the QPDSPJOB was not produced, thus implying the condition was monitored, then... I wonder if the /watch/ feature could be used instead to catch the incident within the job. While there is an apparent asynchronous nature of the exit program being invoked via an Event within a process /watching/ another or itself. The sometimes-failing job presumably could be the requester of a Start Watch (STRWCH) [e.g. STRWCH WCHMSG(MCH1202 'QZRCSRVS' *TOPGM *ESCAPE *EQ 40) WCHJOB(*) WCHMSGQ(*JOBLOG) WCHPGM(theLib/TheExitPgm) CALLWCHPGM(*WCHEVT)] such that the Event would be signaled within the same process, thus enabling the exit-program to issue a DSPJOB OUTPUT(*PRINT) along with possibly also a Dump Job Internal (DMPJOBINT) [and Dump Job (DMPJOB)] when the message is issued and the /watched/ message-event occurs effectively simultaneously to be processed within the same job [in effect, the exit program just gets added to the stack]; with proper care, the job could also await a reply to an inquiry before continuing, thus allowing debug to be activated [albeit the processing in the given scenario presumably is all just IBM OS programs for which there are essentially no debug capabilities].? The Event Data made available to the Watch Program [as the Exit Program] for when the Watch Option Setting was established as *MSGID would be available for review by the exit program, but any inputs likely would be unneeded to just effect dumping; yet if the MCH1202 condition were more generically seen even with the watch-selection already imposed [notably the ToPgm, the Receiving Procedure Name additionally could be compared to the value 'CallProgram' to further ensure limiting the data collection to only the specific incidents intended to be captured.

FWiW: I had thought about in the past, and I will mention again or for the first time: A nice enhancement [someone might consider asking] would be for the MsgId MCH1202 to have added, a varying length field that exposes the data in *HEX of the bytes that can not be recognized as valid BCD; another byte to reveal what the operation was expecting to see, e.g. either 'P' [Packed BCD] or 'S' [Zoned BCD], could be additionally worthwhile information added to the data elements of the message description.

Hmmm. The instruction number showing zero has me wondering if the error in the scenario might not arise from generated [e.g. mapping] code rather than from an error in a specific instruction coded within the procedure source; maybe I just do not recall correctly or something has changed in how the error is being manifested. Short of a LIC dump of the process at the point of failure, I doubt I could better understand the failing scenario; I am not sure I would be able to surmise much from any Dump Job (DMPJOB) output. If either the Watch or the Trapped [unmonitored exception] are validated as possible, then that reveals to the service provider how the condition could be trapped to allow for debug of the IBM program(s); debug capable programs from IBM come in the form of TestFix [a variant of, and delivered as, a PTF].


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.