Discussion:
Looking for an appropriate system exit
Add Reply
Steff Gladstone
2017-12-06 07:12:34 UTC
Reply
Permalink
Greetings,

In our installation we would like to implement certain checks and document
certain run-time characteristics at the beginning and during program
initialization and duration (chiefly Cobol programs). We would like to
implement this in a manner transparent to the application, without
requiring the programmer to add lines of JCL or calls to subroutines (we
have thousands of legacy programs and jobs and don't want to have to go
through a massive conversion project).

We are looking at initialization routines like CEEBINT. Can anyone
recommend any other system exits that could be candidates for this sort of
thing. Any potential pitfalls we should be aware of?

Thank you,
Steff Gladstone

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Binyamin Dissen
2017-12-06 08:52:31 UTC
Reply
Permalink
Can you give an example or two?

On Wed, 6 Dec 2017 09:13:47 +0200 Steff Gladstone <***@GMAIL.COM>
wrote:

:>In our installation we would like to implement certain checks and document
:>certain run-time characteristics at the beginning and during program
:>initialization and duration (chiefly Cobol programs). We would like to
:>implement this in a manner transparent to the application, without
:>requiring the programmer to add lines of JCL or calls to subroutines (we
:>have thousands of legacy programs and jobs and don't want to have to go
:>through a massive conversion project).

:>We are looking at initialization routines like CEEBINT. Can anyone
:>recommend any other system exits that could be candidates for this sort of
:>thing. Any potential pitfalls we should be aware of?

--
Binyamin Dissen <***@dissensoftware.com>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steff Gladstone
2018-10-04 15:26:41 UTC
Reply
Permalink
After a respite of several months this topic has gotten hot again for us.
We believe that using the IEFUSI and IEFACTRT exits answer our need to gain
control at job-step initialization and again at job-step termination.

My question is: if we use the dynamic exits facility, that is, the console
command

SETPROG EXIT,ADD,EX=xxxxxxxx,MOD=xxxxxxxx,LAST

(or issue the equivalent CSVDYNEX macro in an assembler program) to add our
exit routines to the system exit points SYS.IEFUSI AND SYS.IEFACTRT, and
assuming we are careful to return R15=0 in our exit routines and not change
anything in the passed parameters, could that still affect or override in
any way the results of the default or system exit routines already in
effect for those exit points? We would like our exits to be as innocuous
as possible and not adversely affect what is already in the system.
Your best/easiest would be a SAF exit for checking PROGRAM class - that
gets
control for each load without hooking stuff. Otherwise you can hook the
standard LOAD/LINK/ATTACH SVCs. The IEFUSI would have the EXEC PGM= name.
On Wed, 6 Dec 2017 12:14:45 +0200 Steff Gladstone <
:>Hi Binyamin,
:>
:>The application load libraries are full of obsolete code. We are trying
to
:>identify which programs are still active in the installation in order to
:>weed out obsolete legacy programs and clean up our load libraries, and
:>eventually, source libraries.
:>
:>We were hoping to choose an optimal exit that would enable us to capture
:>pertinent info: called load module name, load library name, caller name,
:>etc. We would prefer an exit that allows the designation of a number of
:>individual exit routines per exit (JES2 and CICS and, to a limited
extent,
:>DFSMS, provide this capability; I am not aware of other possibilities),
so
:>that we could easily disable or remove our code when necessary without
:>affecting other customized user code in that exit.
:>
:>Thanks for any assistance you can extend to us.
:>
:>Steff Gladstone
:>
:>On Wed, Dec 6, 2017 at 10:53 AM, Binyamin Dissen <
:>
:>> Can you give an example or two?
:>>
:>> On Wed, 6 Dec 2017 09:13:47 +0200 Steff Gladstone <
:>>
:>> :>In our installation we would like to implement certain checks and
:>> document
:>> :>certain run-time characteristics at the beginning and during program
:>> :>initialization and duration (chiefly Cobol programs). We would like
to
:>> :>implement this in a manner transparent to the application, without
:>> :>requiring the programmer to add lines of JCL or calls to subroutines
(we
:>> :>have thousands of legacy programs and jobs and don't want to have to
go
:>> :>through a massive conversion project).
:>>
:>> :>We are looking at initialization routines like CEEBINT. Can anyone
:>> :>recommend any other system exits that could be candidates for this
sort
:>> of
:>> :>thing. Any potential pitfalls we should be aware of?
:>>
:>> --
:>> http://www.dissensoftware.com
:>>
:>> Director, Dissen Software, Bar & Grill - Israel
:>>
:>>
:>> Should you use the mailblocks package and expect a response from me,
:>> you should preauthorize the dissensoftware.com domain.
:>>
:>> I very rarely bother responding to challenge/response systems,
:>> especially those from irresponsible companies.
:>>
:>> ----------------------------------------------------------------------
:>> For IBM-MAIN subscribe / signoff / archive access instructions,
:>>
--
http://www.dissensoftware.com
Director, Dissen Software, Bar & Grill - Israel
Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.
I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2018-10-04 16:56:13 UTC
Reply
Permalink
The dynamic exits facility does a pretty much perfect job of isolating various exit routines one from another.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Steff Gladstone
Sent: Thursday, October 4, 2018 8:30 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: Looking for an appropriate system exit

After a respite of several months this topic has gotten hot again for us.
We believe that using the IEFUSI and IEFACTRT exits answer our need to gain
control at job-step initialization and again at job-step termination.

My question is: if we use the dynamic exits facility, that is, the console
command

SETPROG EXIT,ADD,EX=xxxxxxxx,MOD=xxxxxxxx,LAST

(or issue the equivalent CSVDYNEX macro in an assembler program) to add our
exit routines to the system exit points SYS.IEFUSI AND SYS.IEFACTRT, and
assuming we are careful to return R15=0 in our exit routines and not change
anything in the passed parameters, could that still affect or override in
any way the results of the default or system exit routines already in
effect for those exit points? We would like our exits to be as innocuous
as possible and not adversely affect what is already in the system.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Tony Harminc
2018-10-04 19:15:12 UTC
Reply
Permalink
Post by Charles Mills
The dynamic exits facility does a pretty much perfect job of isolating various exit routines one from another.
I agree with Charles - it's a great facility with about all the power
and convenience one could ask for. (Now why certain IBM components
continue not to use it is another matter.)

Steff Gladstone wrote:
[...]
Post by Charles Mills
(or issue the equivalent CSVDYNEX macro in an assembler program) to add our
exit routines to the system exit points SYS.IEFUSI AND SYS.IEFACTRT,
[...]

I would just watch for two possible trouble areas:

Will either or both exits get control where you don't expect it, e.g.
for things other than batch jobs/steps? Your code may need to be aware
of its invocation environment that could be TSO, a
forked/spawned/exec'd UNIX job step, or an APPC transaction. Maybe you
don't have any of these, but your code should probably be aware and
ignore them gracefully if you don't want to process them.

On the flip side, dynamically adding exit routines to SYS.xxx may not
be enough to capture everything of interest. If it's your own system
and you know what your SMFPRMxx looks like, then fine. But depending
on the SYS and SUBSYS parameters, there could be exit points for
things like TSO.xxx or IMS.yyy or ASCH.zzz. Best generalized approach
if you're going to use CSVDYNEX is to issue CSVDYNEX REQUEST=LIST,
and then scan the result for exit point names *ending* in .IEFUSI and
.IEFACTRT (noting that the left parts can be of different lengths). Or
of course just hard code what you know you need.

And it goes without saying that these exits run in the most highly
privileged state possible, i.e. key zero and supervisor state. So code
and test very carefully...

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Tom Marchant
2017-12-06 12:35:58 UTC
Reply
Permalink
Post by Steff Gladstone
In our installation we would like to implement certain checks and document
certain run-time characteristics at the beginning and during program
initialization and duration ...
We are looking at initialization routines like CEEBINT. Can anyone
recommend any other system exits that could be candidates for this sort of
thing. Any potential pitfalls we should be aware of?
In order to provide any guidance, we will need more information about the
kinds of things you want to do. I would be surprised if CEEBINIT would be
appropriate.
--
Tom Marchant

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Elardus Engelbrecht
2017-12-06 14:37:49 UTC
Reply
Permalink
In our installation we would like to implement certain checks and document certain run-time characteristics at the beginning and during program initialization and duration (chiefly Cobol programs).
What checks?
We would like to implement this in a manner transparent to the application, without requiring the programmer to add lines of JCL or calls to subroutines (we have thousands of legacy programs and jobs and don't want to have to go through a massive conversion project).
Forget about it. No, sorry, I not being funny with you, but really, those 'change / documentation / check management' and similar software are mostly failed to doom and gloom. Rather start with that project when you __start__ a mainframe system or a data centre, not when you have gazillion old and new programs, JCLs and systems.

I was tasked around 1989-199? to implement Librarian and to invent something for documentation of program changes and what they're doing at all. It was a PITA which we dropped as soon we can...
We are looking at initialization routines like CEEBINT. Can anyone recommend any other system exits that could be candidates for this sort of thing.
Ok, I said I am not funny with you. One solution is, what submitter are you using? If using automation software, then your project is nearly done. just modify your automation software for all these jobs and their programs. These software have audit logs, if enabled of course.

Those automation software have 'condition codes' which can be used to audit and log jobs/steps completion. So you could setup your job with RC=0/4/16 and the condition codes can be setup as 'Good/Bad/Ugly' after completion.

Or use RACF and SMF to monitor the loadlibs and program as well data used. Lots of hard work and overhead, but can be done.

I believe there are other methods... but CEEBINIT? Not all programs are compiled using LE. What will you do if some COBOL programs call an Assembler program which disregards LE?
Any potential pitfalls we should be aware of?
Hmmm, some pitfalls - you will only see the first program [in EXEC PGM=<???>], if you want monitor subsequent called programs, you're in trouble, unless you can put something in to monitor them too. No, I don't know if that solution is possible or useful.

Perhaps you should clarify what you need and give some examples as requested by others. I am pretty sure there is a solution for your task.

Good luck and all of the very best for you and your team.

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Relson
2018-10-05 12:36:35 UTC
Reply
Permalink
<snip>
assuming we are careful to return R15=0 in our exit routines and not
change
anything in the passed parameters, could that still affect or override in
any way the results of the default or system exit routines already in
effect for those exit points?
</snip>

No, it could not.

<snip>
(Now why certain IBM components
continue not to use it is another matter.)
</snip>

Because, presumably, there has been not enough call to do so (and there
is, of course, a cost for implementation). If you have a reason for
wanting/needing a particular exit to exploit the dynamic exits facility,
then please submit an RFE. When the facility was developed, we took a stab
at which existing exits that we thought were most likely to be of help to
the most customers. And I'd hope that new exits use it.

<snip>
SYS.IEFUSI AND SYS.IEFACTRT
</snip>

I agree with Tony H's point that you need to consider whether you might
also need the other cases such as SYSSTC.


Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Relson
2018-10-05 12:44:10 UTC
Reply
Permalink
<snip>
Otherwise you can hook the standard LOAD/LINK/ATTACH SVCs.
</snip>

Please do not do that. There is a long history of applications getting
this wrong.
It is unfortunate that hooking of any SVC was ever viewed as acceptable
practice.
But in the absence of suitable exits, it can be understandable.

z/OS 2.2 implemented the CSVFETCH exit. Consider using that if you want to
track every module fetch.

Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Elardus Engelbrecht
2018-10-05 13:20:22 UTC
Reply
Permalink
When the facility was developed, we took a stab at which existing exits that we thought were most likely to be of help to the most customers. And I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an unneeded IPL when one of my SMF exits went down the bit bucket.

That exit was called once, a dump took place and SMF just disable it. I had to remove it from SMFPRMxx and from LPA, analyze the problem and put it back first on LPA and then back on SMF.

Years ago, before those dynamic exit facility, it was a real PITA to add a new accounting code in IEFUJI exit. Then some one (not me) rewrote the IEFUJI to have LOAD EP=<module containing the batch account codes> avoiding an IPL.

Now these days we are using RACF to check up those accounting codes. IRREVX00 exit is also an excellent user of that great dynamic exit facility.

I could also go on for example those ISPF exits which you can reload it by just logoff/logon on to TSO.

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2018-10-05 14:17:43 UTC
Reply
Permalink
I use the CSVDYNEX interface extensively and it has been nothing but bulletproof in all of my experience. Kudos!

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing exits that we thought were most likely to be of help to the most customers. And I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an unneeded IPL when one of my SMF exits went down the bit bucket.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steff Gladstone
2018-11-22 20:42:32 UTC
Reply
Permalink
Three questions regarding IEFACTRT:

1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google
doesn't seem to locate the doc as well.

2. I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?

3. The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I code
an SVC 99 call myself?

Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing exits
that we thought were most likely to be of help to the most customers. And
I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-11-24 19:48:41 UTC
Reply
Permalink
1. IEFYS is a really old interface; I didn't think anybody was still using it. The best place to look is probably the OS/360 documentation at http://bitsavers.org/pdf/ibm/360/os/R20.1_Mar71/GC28-6550-9_OS_System_Programmers_Guide_Rel_20.1_Jun71.pdf

2. Doesn't IEFACTRT run under the Initiator TCB? I would expect the storage of the terminating job step to be long gone.

3. Show your parameter list and return code. You're running under the Initiator, so it may be an issue with your security environment.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Steff Gladstone <***@GMAIL.COM>
Sent: Thursday, November 22, 2018 3:53 PM
To: IBM-***@listserv.ua.edu
Subject: Re: Looking for an appropriate system exit

Three questions regarding IEFACTRT:

1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google
doesn't seem to locate the doc as well.

2. I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?

3. The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I code
an SVC 99 call myself?

Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing exits
that we thought were most likely to be of help to the most customers. And
I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
David Spiegel
2018-11-25 02:13:59 UTC
Reply
Permalink
1. If nobody was using IEFYS, how else would the flower box be printed?
1. IEFYS is a really old interface; I didn't think anybody was still using it. The best place to look is probably the OS/360 documentation at https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbitsavers.org%2Fpdf%2Fibm%2F360%2Fos%2FR20.1_Mar71%2FGC28-6550-9_OS_System_Programmers_Guide_Rel_20.1_Jun71.pdf&amp;data=02%7C01%7C%7Cbd270956a79640dbdde708d65245dd84%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636786857360946751&amp;sdata=SDpk9gv%2BqiCPdB7eUNZdPTtc9Q%2BM8qxr548J8fnU5PI%3D&amp;reserved=0
2. Doesn't IEFACTRT run under the Initiator TCB? I would expect the storage of the terminating job step to be long gone.
3. Show your parameter list and return code. You're running under the Initiator, so it may be an issue with your security environment.
--
Shmuel (Seymour J.) Metz
https://eur01.safelinks.protection.outlook.com/?url=http:%2F%2Fmason.gmu.edu%2F~smetz3&amp;data=02%7C01%7C%7Cbd270956a79640dbdde708d65245dd84%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636786857360946751&amp;sdata=GKK3hqgt4uaepi6nw9h80ESrAaOCWmwnBWaw3y3cs%2BA%3D&amp;reserved=0
________________________________________
Sent: Thursday, November 22, 2018 3:53 PM
Subject: Re: Looking for an appropriate system exit
1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google
doesn't seem to locate the doc as well.
2. I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?
3. The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I code
an SVC 99 call myself?
Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing exits
that we thought were most likely to be of help to the most customers. And
I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-11-22 22:43:22 UTC
Reply
Permalink
Post by Steff Gladstone
1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google
doesn't seem to locate the doc as well.
2. I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?
3. The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I code
an SVC 99 call myself?
What was your argument string for BPXWDYN? Return code? Message text?

I have used SYSCALL open /dev/console followed by SYSCALL write.

o This gives no control of routing/descriptor.

o Automation may intercept BPXF024I.

Also possible: SYSCALL writefile /dev/console

Also possible: BPXWDYN( "alloc path('/dev/console') filedata(text) msg(WTP) ..." )

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Relson
2018-11-23 16:31:25 UTC
Reply
Permalink
<snip>
I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?
</snip>

What is recommended is no different than for any program -- you need to
understand your environment and the termination characteristics.
If you obtained storage while the job is running, and that storage is
owned by any task within the jobstep program task tree (i.e., the task
tree with the EXEC PGM=xxxx task at the top), then that storage will have
been freed if you then run after the termination of that jobstep program
task (which is when IEFACTRT runs, I think).

Perhaps what is recommended is that your IEFACTRT exit routine not rely on
storage obtained within the jobstep program task tree.

TCBJSTCB when running under the jobstep program task tree will not be of
help. That is athe jobstep program task or a jobstep subtask of that task.
You can identify the proper task or you can get storage in a subpool that
is not owned by a task (LSQA). If you get such storage, then it is up to
you to make sure it gets freed in a timely fashion; the system won't help
until the ownership rules indicate that it should (e.g., end of address
space for non-task-owned LSQA).

<snip>
The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I
code
an SVC 99 call myself?
<snip>

"Can dynamically allocate" is not the same as to "can use BPXWDYN". I
would guess that you cannot use BPXWDYN except from within the jobstep
program task tree. Why did you not post the return information from your
BPXWDYN? That might have told you what the problem was, and would have
helped the readers from having to guess.

Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-11-23 18:12:52 UTC
Reply
Permalink
Post by Peter Relson
"Can dynamically allocate" is not the same as to "can use BPXWDYN". I
would guess that you cannot use BPXWDYN except from within the jobstep
program task tree. Why did you not post the return information from your
BPXWDYN? That might have told you what the problem was, and would have
helped the readers from having to guess.
Yes.

From: z/OS Using REXX and z/OS UNIX System Services
Version 2 Release 3 SA23-2283-30
Calling conventions
BPXWDYN must be called in 31-bit mode in an environment that permits dynamic
allocation and dynamic output requests.

You might get more complete information about BPXWDYN from MVS-OE:
For MVS-OE subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO MVS-OE
Or: http://vm.marist.edu/htbin/wlvindex?MVS-OE

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Jesse 1 Robinson
2018-11-24 20:17:23 UTC
Reply
Permalink
Our SMF exits still use IEFYS to write messages to the job output stream. If there were some other 'more modern' method, I'd use it, but I know of none. As for doc, I've never found any. I just call the interface--which at least seems to be a supported if somewhat clandestine UI--and it continues to work through decades of OS upgrades. We absolutely need to write messages from SMF exits. If not IEFYS, then how? I'm open to improvements.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Seymour J Metz
Sent: Saturday, November 24, 2018 11:49 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: Looking for an appropriate system exit

1. IEFYS is a really old interface; I didn't think anybody was still using it. The best place to look is probably the OS/360 documentation at http://bitsavers.org/pdf/ibm/360/os/R20.1_Mar71/GC28-6550-9_OS_System_Programmers_Guide_Rel_20.1_Jun71.pdf

2. Doesn't IEFACTRT run under the Initiator TCB? I would expect the storage of the terminating job step to be long gone.

3. Show your parameter list and return code. You're running under the Initiator, so it may be an issue with your security environment.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Steff Gladstone <***@GMAIL.COM>
Sent: Thursday, November 22, 2018 3:53 PM
To: IBM-***@listserv.ua.edu
Subject: Re: Looking for an appropriate system exit

Three questions regarding IEFACTRT:

1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google doesn't seem to locate the doc as well.

2. I am abending on S0C4 because getmained areas are automatically being freed at end of step, before IEFACTRT gets control. It is not clear to me if SUBPOOL alone can solve the problem. Do I need to specify TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the job-step TCB? What course is recommended?

3. The documentation says one can dynamically allocate within IEFACTRT but the BPXWDYN routine returns a non-zero return code. (Same code that works fine in a regular program.) Is this a limitation of BPXWDYN? Should I code an SVC 99 call myself?

Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
On Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing
exits
that we thought were most likely to be of help to the most customers.
And I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-11-26 19:36:37 UTC
Reply
Permalink
The only documented way that I know of is with WTO; why the FM specifies ROUTCDE=14 rather than 11 I don't understand. There's an undocumented ACB interface. but I don't recall the setup details.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Jesse 1 Robinson <***@SCE.COM>
Sent: Saturday, November 24, 2018 3:17 PM
To: IBM-***@listserv.ua.edu
Subject: Re: Looking for an appropriate system exit

Our SMF exits still use IEFYS to write messages to the job output stream. If there were some other 'more modern' method, I'd use it, but I know of none. As for doc, I've never found any. I just call the interface--which at least seems to be a supported if somewhat clandestine UI--and it continues to work through decades of OS upgrades. We absolutely need to write messages from SMF exits. If not IEFYS, then how? I'm open to improvements.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Seymour J Metz
Sent: Saturday, November 24, 2018 11:49 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: Looking for an appropriate system exit

1. IEFYS is a really old interface; I didn't think anybody was still using it. The best place to look is probably the OS/360 documentation at http://secure-web.cisco.com/1gnfRXs1KF_kQF-919fF6eZq16WYo4NjFG740q0HSIRf0e9hVyYm15nERpwmkSe9X4fUeZoKpEARI5iYlW8dBl3bhnlO7EiAfnMus7A7SPR9NMKQHFGwWU-G0uq78_vsmn4nB7dkqrtT5l_vwTQIm2L_K3jzxXHxQgmUE11hH5U8bQcV7Veylge_htj1Vdg4_8aDfe6tyRADVG2d8GFRYeen8ZACtgoTzdX0f8GMdgLTd37-jNBBHdaztHyYeEXt0d7e0PUEE3-Pc0QG0eLRKcMTXO2FXtzQCLl6SYrwNTBUese1rAqBXfr9AFTAUvuZ4zaruqj_ypr5tLg21PeWWDuDDKL496PQNaBelfn34ndBmfNJBmT2rIac1YuttyCG8ffJTQZ7l4KE3aMXs5MPezu5VMNb_Qu6v40jGFwHohkFPcjmA15EjM1OIaCXVwAZR/http%3A%2F%2Fbitsavers.org%2Fpdf%2Fibm%2F360%2Fos%2FR20.1_Mar71%2FGC28-6550-9_OS_System_Programmers_Guide_Rel_20.1_Jun71.pdf

2. Doesn't IEFACTRT run under the Initiator TCB? I would expect the storage of the terminating job step to be long gone.

3. Show your parameter list and return code. You're running under the Initiator, so it may be an issue with your security environment.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Steff Gladstone <***@GMAIL.COM>
Sent: Thursday, November 22, 2018 3:53 PM
To: IBM-***@listserv.ua.edu
Subject: Re: Looking for an appropriate system exit

Three questions regarding IEFACTRT:

1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google doesn't seem to locate the doc as well.

2. I am abending on S0C4 because getmained areas are automatically being freed at end of step, before IEFACTRT gets control. It is not clear to me if SUBPOOL alone can solve the problem. Do I need to specify TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the job-step TCB? What course is recommended?

3. The documentation says one can dynamically allocate within IEFACTRT but the BPXWDYN routine returns a non-zero return code. (Same code that works fine in a regular program.) Is this a limitation of BPXWDYN? Should I code an SVC 99 call myself?

Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
On Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing
exits
that we thought were most likely to be of help to the most customers.
And I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steff Gladstone
2018-11-27 07:56:01 UTC
Reply
Permalink
Thank you one and all for your excellent advice.
Post by Seymour J Metz
The only documented way that I know of is with WTO; why the FM specifies
ROUTCDE=14 rather than 11 I don't understand. There's an undocumented ACB
interface. but I don't recall the setup details.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
Sent: Saturday, November 24, 2018 3:17 PM
Subject: Re: Looking for an appropriate system exit
Our SMF exits still use IEFYS to write messages to the job output stream.
If there were some other 'more modern' method, I'd use it, but I know of
none. As for doc, I've never found any. I just call the interface--which at
least seems to be a supported if somewhat clandestine UI--and it continues
to work through decades of OS upgrades. We absolutely need to write
messages from SMF exits. If not IEFYS, then how? I'm open to improvements.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
Behalf Of Seymour J Metz
Sent: Saturday, November 24, 2018 11:49 AM
Subject: (External):Re: Looking for an appropriate system exit
1. IEFYS is a really old interface; I didn't think anybody was still
using it. The best place to look is probably the OS/360 documentation at
http://secure-web.cisco.com/1gnfRXs1KF_kQF-919fF6eZq16WYo4NjFG740q0HSIRf0e9hVyYm15nERpwmkSe9X4fUeZoKpEARI5iYlW8dBl3bhnlO7EiAfnMus7A7SPR9NMKQHFGwWU-G0uq78_vsmn4nB7dkqrtT5l_vwTQIm2L_K3jzxXHxQgmUE11hH5U8bQcV7Veylge_htj1Vdg4_8aDfe6tyRADVG2d8GFRYeen8ZACtgoTzdX0f8GMdgLTd37-jNBBHdaztHyYeEXt0d7e0PUEE3-Pc0QG0eLRKcMTXO2FXtzQCLl6SYrwNTBUese1rAqBXfr9AFTAUvuZ4zaruqj_ypr5tLg21PeWWDuDDKL496PQNaBelfn34ndBmfNJBmT2rIac1YuttyCG8ffJTQZ7l4KE3aMXs5MPezu5VMNb_Qu6v40jGFwHohkFPcjmA15EjM1OIaCXVwAZR/http%3A%2F%2Fbitsavers.org%2Fpdf%2Fibm%2F360%2Fos%2FR20.1_Mar71%2FGC28-6550-9_OS_System_Programmers_Guide_Rel_20.1_Jun71.pdf
2. Doesn't IEFACTRT run under the Initiator TCB? I would expect the
storage of the terminating job step to be long gone.
3. Show your parameter list and return code. You're running under the
Initiator, so it may be an issue with your security environment.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
Sent: Thursday, November 22, 2018 3:53 PM
Subject: Re: Looking for an appropriate system exit
1. Where is use of IEFYS for writing messages to the JOBLOG documented?
The example given in the documentation for IEFACTRT is incomplete. Google
doesn't seem to locate the doc as well.
2. I am abending on S0C4 because getmained areas are automatically being
freed at end of step, before IEFACTRT gets control. It is not clear to me
if SUBPOOL alone can solve the problem. Do I need to specify
TCBADDR=TCBJSTCB on the STORAGE macro so that the "input TCB" is the
job-step TCB? What course is recommended?
3. The documentation says one can dynamically allocate within IEFACTRT but
the BPXWDYN routine returns a non-zero return code. (Same code that works
fine in a regular program.) Is this a limitation of BPXWDYN? Should I code
an SVC 99 call myself?
Thank you in advance,
Steff Gladstone
Post by Charles Mills
I use the CSVDYNEX interface extensively and it has been nothing but
bulletproof in all of my experience. Kudos!
Charles
-----Original Message-----
On Behalf Of Elardus Engelbrecht
Sent: Friday, October 5, 2018 6:20 AM
Subject: Re: Looking for an appropriate system exit
When the facility was developed, we took a stab at which existing
exits
that we thought were most likely to be of help to the most customers.
And I'd hope that new exits use it.
That was one of the best stabs I got from Big Blue. It saved me an
unneeded IPL when one of my SMF exits went down the bit bucket.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Loading...