On 12-Jul-2017 10:38 -0600, Alan Campin wrote:
On Wed, Jul 12, 2017 at 6:55 AM, Glenn Gundermann wrote:
On 12-Jul-2017 04:23 -0600, Gad Miron wrote:
[…] We have here a (admittedly primitive) small home grown
authorization system where users are authorized to certain PGMs
(and to PGM's features) in certain Libraries.

Like: User Bob is authorized to LIB1/PGM_A

this system is implemented by having each PGM call (in *INZSR) a
certain authority checking program (passing it's *PSSR's User,
PGM and Library) that returns a pass/fail indication
This works fine until some programmer compiles a PGM while it is
in use by some user.
The compile replaces the PGM and moves the original PGM obj to
QRPLOBJ

The scenario is as follows:

User has authority to LIB1/PGM_A

PGM_B calls PGM_A

PGM_A checks authority of user to LIB1/PGM_A – User passes the
check.

LIB1/PGM_A is compiled. PGM_A in LIB1 is replaced, original PGM_A
is moved to QRPLOBJ

PGM_A returns to caller (PGM_B)
[…]


Instead of leaving it to the system to move the existing program to
QRPLOBJ, you could have the promotion program do it as part of the
process:

- Delete any older versions of QRPLOBJ/PGM_A
- Move the current version<lib>/PGM_A to QRPLOBJ
- Compile PGM_A


What happens if you delete the program instead of using QRPLOBJ?

*_>_O DLTPGM PGM(@OBJLIB/@OBJNAM)
*_>_R CRTBNDRPG PGM(@OBJLIB/@OBJNAME
*_>_C SRCFIL(@SRCLIB/@SRCFIL) SRCMBR(@SRCMBR)


IIRC, use of Delete Program (DLTPGM), against the PGM_A in *either* the LIB1 or QRPLOBJ [the two most recently quoted replies], whilst that program is in use by a job, that may cause the process using that program, to terminate with a machine check [I do not recall the VLog major/minor codes; ¿and ends with effectively no cleanup?]. While I do not think that termination is an issue when the PGM_A would otherwise "returns to caller (PGM_B)" [because the RTX aka Return is in memory], that termination is certain if/when whatever PGM_A called would try to return to PGM_A [because the RTX aka Return is to a program that has since been destroyed]. Use of the Replace Object feature is quite preferable, over the potentially negative consequences of the process terminating.?.?


This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2026 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.