× 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.



Hello Tim,

If program A is doing a call then that program is waiting on the called
program to end and return control to program A.

From your description you can't change any of the called programs so I am
guessing you have no idea of what error occurred, just that an error has
been detected.

So here is one suggestion that might help or might not.

Change program A to submit the call to new program X

Create a data queue to allow messages from program X to program A

Program X receives the parameters necessary to call program B
Program X calls program B
Then it monitors the call for any error.
If an error is detected it puts a message on a data queue indicating an
error occurred.
If no error it puts a message on the data queue indicating success
Then ends.

Program A
Create a data queue suitable for receiving messages from program X to
let you know an error has occurred.
After the sbmjob to run program B using program X do a receive on the
data queue, this will cause the program to wait until either progrram B
and subsequent calls completes or fails.
Respond to the user as required.
Now submit the next program B via program X

Cheers

Don






From: "Tim Adair" <tadair@xxxxxxxxxxxxxxxx>
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Date: 22/02/2024 08:02 AM
Subject: Error handling over multiple call levels
Sent by: "RPG400-L" <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx>



Given the following scenario:
PROGRAM A calls Program B. Program B calls Program C. Program C gets
an error (of any kind).

Is there any way to notify Program A that program C had an error,
without losing my place in program C.

I'm writing in RPGLE (interactive) Program A, which reads a file where
each record contains the name of a (Program B) program. These B
programs are almost all CL programs that call RPGLE programs (which are
the C-level programs). If an error occurs in a C-level program, I want
this communicated to program A which will notify the user, _BUT_ I don't
want to lose (or automatically respond to) the error in program C. I
want program A to notify the user, but I still want to be able to
manually deal with the original error in program C.

Now the kicker... This must be done without modifying any of the B or
C-level programs. All the hoop-jumping must be done in the new A-level
program.

Sorry if this is confusing. If anyone can decipher the ravings of a
lunatic, I would appreciate your thoughts.

Thanks.

~TA~


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.