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

Thanks for the detailed explanations (hope I got them all right)

The Exit program is indeed called (judging by the relevent QZRCSRVS job's
joblog)
But it fails to replace the original CMD
(CRTBNDRPG/CRTRPGMOD) with the special CMD that fires the CPP to execute
the "pre-compiler" .

Sample QZRCSRVS joblog entries

Client request - run program QSYS/QSYRUSRI.
Client request - run program QSYS/QUSRJOBI.
Client request - run command QSYS/CHGDTAARA.
Client request - run command QSYS/CHGDTAARA.
Client request - run command CHGDTAARA.
Client request - run command CRTBNDRPG.
Data area CRTRPG created in library QTEMP<--This line is executed by the
exitPg.
Compilation stopped. Severity 40 errors found in program.
Compilation failed. Program BB not created in library GAD.
Client request - run program QSYS/QMHRTVM.

Compilation faild because the replacement CMD with it's CPP was not invoked
to run the "Pre-compiler" so the ADDLIBLE embedded in the source was not
done.
the original CRTBNDRPG was executed.

Regards
Gad



On Mon, Jan 25, 2016 at 4:58 PM, Stuart Rowe <rowestu@xxxxxxxxx> wrote:

Gad, MichaelQ, et al,

A program running in system state has naught to do with CALLING the exit
program, only what you can do to the command string DURING the exit
program.

The exit program is called, but the command *cannot be changed* if any of
the following occur:

- The command was qualified with a specific library name.
- The command has a parameter defined as RTNVAL(*YES), which allows the
command processing program (CPP) to return a value to the calling
program.
- The command has a parameter defined as either DSPINPUT(*NO) or
DSPINPUT(*PROMPT), which does not allow the value to be shown in the
prompt
display or joblog.
- The command was used in a program running in system state.


Gad:

What you are doing should work just fine. Do not give up.

I just registered a little "tattle-tale" program to that exit point and ran
some compiles through RDi -- it triggered the exit program EVERY TIME.
There was no difference in the parameters passed to the called program
whether I compiled in batch or inline (in RDi, the opposite of BATCH is
INLINE, not INTERACTIVE), the exit program was triggered with the same data
every time. I registered QSYS/CRTRPGMOD, QSYS/CRTBNDRPG, etc. I also
tried it with QDEVTOOLS/CRTRPGMOD and it worked just fine every time. I
cannot imagine what your problem is.

Have you set a service break in the pre-processor program to be SURE it is
not being called (and not just doing nothing)? You should, first thing,
and let us know if it IS being called. Don't just judge by end results.

Other stuff to check:

1. If your exit program is checking the command name and/or library
before doing its job, make sure it is checking for the correct command
name
and/or library. When I get the exit point triggered (either by RDi or
PDM), the "command being executed" (in the command information structure
passed as paramter 1) is QDEVTOOLS/CRTRPGMOD while the proxy chain
indicates it really started with QSYS/CRTRPGMOD.
2. There are settings on each Connection in RDi that specify which *JOBD
is used for batch compiles -- make sure that if the jobd specifies a
user
profile that it has authority to call the pre-processor program or make
sure your pre-processor has PUBLIC *USE authority on it.
3. Check the joblog of your compile job for errors in calling or while
running your pre-compiler.
1. if in batch, it will be named after your job description,
2. if inline it will be in the remote command server job that is
processing your requests (QZRCSRVS with your user ID on it)

Recently (the past year or so) I have had several issues with the Command
Analyzer not working correctly when using the QIBM_QCA_CHG_COMMAND exit
point wikth proxy commands (several bugs were introduced in V5R4 with the
proxy command implementation). When a proxy command is used (CRTBNDRPG,
CRTCPPMOD, etc are PROXY commands in QSYS), I find it wise to register the
root command (QDEVTOOLS/CRTBNDRPG) instead of the more obvious
QSYS/CRTBNDRPG (I believe Bruce Vining pointed this out to you last
August). Not saying this is your issue, just pointing out that if you
register QSYS/CRTRPGMOD, someone can dodge your exit program by executing
QDEVTOOLS/CRTRPGMOD.
One of the issues I had fixed lately was the exit program would just STOP
BEING CALLED until you de-registered and re-registered the exit program.
We never figured out exactly why it sould stop being called, even after a
couple hours on the phone with China (the command analyzer is maintained by
Chinese contractors now). At any rate, here is a PTF that may (or may not)
help:
V6R1 = SI58104
V7R1 = SI58105
V7R2 = SI58106

Good luck.

Stu









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.