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



That is why replace object is so dangerous. You are playing Russian
Roulette and eventually you are going to blow your brains out.

On Wed, Jul 12, 2017 at 1:29 PM, CRPence <crpbottle@xxxxxxxxx> wrote:

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

--
Regards, Chuck

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD


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.