Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MCH3402 - A system obj is destroyed or has header damage? RCLSTG? RCLLIB?

1,972 views
Skip to first unread message

Kevin Buckley

unread,
Jan 6, 2003, 12:41:37 PM1/6/03
to
I am getting the following error:
---------
Job ended abnormally because of error code MCH3402.

MCH3402 - A system object is destroyed or has
header damage. This is most commonly caused by deleting a program that is
active in the program stack. It may also be caused by deleting the event
handlers, external exception handlers, or the program to which the job was
routed.
----------------

The error is occurring intermittently on a program that uses .. probably 50
different files, so I am having difficulty figuring out what object might be
damaged. It does not appear in any job log I can find.

1. Any ideas on how to figure out what object is damaged?

2. Would RCLSTG identify and/or fix this object?

3. Knowing RCLSTG may take a long time (although we only have 25gigs used
right now) I tried RCLLIB, which I thought was the little brother of RCLSTG.
Unfortunately, RCLLIB took about 2 seconds and didn't seem to do anything.

4. Can you put RCLSTG in a CL batch job, or must it be run interactively? I
was thinking of running it off-hours, doing an ENDSBS, RCLSTG, followed by a
PWRDWNSYS restart. Would this work? .. (Does RCLSTG do an ENDSBS by
itself?)

Thanks in advance!

-kb


Drew Dekreon

unread,
Jan 6, 2003, 1:53:34 PM1/6/03
to
look at WrkSysSts display, at the %perm & %temp addresses. If you run
rclstg, these fall to near 0. Total of the two above .08 is not very
good and indicates you need to rclstg.
Rclstg has to be run from a restricted system.
Before I did any of that, I would recompile all the programs & logicals
in the job that threw the mch3402. The only time I've seen this come up
was when a program or dynamically bound program was moved or deleted
while it was executing a call to an external program..

Steve Richter

unread,
Jan 6, 2003, 8:03:10 PM1/6/03
to
"Kevin Buckley" <kbuc...@csepromo.com.com.com> wrote in message news:<v1jfukp...@corp.supernews.com>...

> I am getting the following error:
> ---------
> Job ended abnormally because of error code MCH3402.
>
> MCH3402 - A system object is destroyed or has
> header damage. This is most commonly caused by deleting a program that is
> active in the program stack. It may also be caused by deleting the event
> handlers, external exception handlers, or the program to which the job was
> routed.
> ----------------
>
> The error is occurring intermittently on a program that uses .. probably 50
> different files, so I am having difficulty figuring out what object might be
> damaged. It does not appear in any job log I can find.
>
> 1. Any ideas on how to figure out what object is damaged?

Hi Kevin,

You could try the StrTrc command to trace pgm/procedure calls on the
job that sometimes gets the damaged object exception. To prevent the
job from abending try adding a cl pgm as the initial pgm of the job
and global monitor for cpf9999 in that pgm. This initial cl pgm
should also StrTrc with the *Wrap option and then EndTrc PrtTrc(*Yes)
when the abend message is caught.

The plan is that when the job abends from the damaged object problem,
you can look at the pgm/procedure call trace to see what was called
last.

Steve Richter

art s

unread,
Jan 6, 2003, 4:56:39 PM1/6/03
to
Another thing to do is use STRSST to view the Licensed Internal Code log service
function. Look for large KB entries that occurred around the time of the
MCH3402. Its often difficult to tell what really happened, but there is a stack
dump that might yield clues whats going on, but IBM service might help.

jb

unread,
Jan 8, 2003, 8:28:12 AM1/8/03
to
You can get this if inserting new versions of a program & instead of moving
the old version somewhere like QRPLOBJ which is a default if ou compile, you
simply delete & restore a new version. The job stack will now show object *N
or blanks & the same for the library. However from V4.3 (about) I havent
actually seen jobs endign due to this & they seem to run happily using a
deleted object. Maybe the object is cleared up when the last user leaves it
or maybe at IPL. There is also a problem when the user reyurns down the
stack to say an RPG program & tries to call the deleted object again. In
that case you get an MCH message: the RPG program knows the location of the
last call to the program if its coded as CALL 'XYZ' & if you do EVAL
PROG='XYZ' CALL PROG the next call to PROG will call the same (possibly
deleted object) again evan if it was renamed, unless the value of PROG no
longer equals the valus it had the last time it was used in a CALL. Just
changing the value of PROG twice isnt good enough. The RPG manual on CALL
may have worded this bit better than me. I can only add that CL programs
apparently alvays resolve to the called object every time so if this is your
problem stack CL calls between your RPGs & only update the RPGs.
If this isnt your problem sorry to have wasted your time.

Jonathan.


"Kevin Buckley" <kbuc...@csepromo.com.com.com> wrote in message
news:v1jfukp...@corp.supernews.com...

Kevin Buckley

unread,
Jan 8, 2003, 9:27:24 AM1/8/03
to
Thank you all for you responses. I'm a little befuddled on what to do next,
however.

The other specifics I should have given were thus: The job(s) that are
getting the MCH3402 are servers from IBM's Net.Commerce, which I've
considered a black box for the past 3 years, as they've run without incident
for ages. We have not made any changes to the programs (or over-ridable
functions) in years and are only suddenly getting these MCH3402s.

However, some days, they work great, and none of these server jobs crash.
Other days, 3-4 of them will MCH3402 on me.

That's why I was hoping a RCLSTG would fix the problem, but it would appear
that all of you think it's a program error, not a damaged file/object
problem. True?

Again, anyone know what RCLLIB does?


"Kevin Buckley" <kbuc...@csepromo.com.com.com> wrote in message
news:v1jfukp...@corp.supernews.com...

Drew Dekreon

unread,
Jan 8, 2003, 8:01:56 PM1/8/03
to
The help for rcllib indicates it checks & tries to correct damaged
objects - - for the situation you're describing, I'd say it was worth a try.
So: first, rcllib, then, rclstg
You still probably should recompile everything.
0 new messages