Getting the DFHEIENT macro to generate an RSECT (CICS/assembler)

2024-02-25 Thread Steff Gladstone
I am trying to set the  global conditional-assembly variable  to 1
in order to get the DFHEIENT macro to generate an RSECT instead of a
CSECT.  But the translator gets in the way by automatically inserting
a DFHEIGBL macro invocation just before the DFHEIENT macro, resetting
 to zero.  How can I prevent the translator from doing this?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


ESTAE and IEBCOPY

2022-03-08 Thread Steff Gladstone
In one of our REXX procedures we execute IEBCOPY to copy a member from one
PDS to another.  Sometimes IEBCOPY fails (e.g., for lack of space either in
the directory or the library). It intercepts the abend through its ESTAE
routine and returns a CC=8  with a text message to SYSPRINT.

We would like to be able to receive more specific information as to the
abend code and reason code of the IEBCOPY fail so we wrote a front-end
which creates our own ESTAE before calling IEBCOPY so we can capture the
information from the SDWA at abend time.  But it appears that IEBCOPY
overlays our ESTAE with its own so we don't get control.  So we decided
that when IEBCOPY returns to our front-end we would locate the RTM2WA and
glean the information from it.  But the pointer to the RTM2WA  (TCBRTWA) is
zero at that point (we suppose that IEBCOPY cancels its ESTAE before
returning to us and the RTM2WA is released).

Does anybody have any ideas how we might capture the abend and reason codes
in spite of all this?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


RTM2WA

2022-03-08 Thread Steff Gladstone
Where can I find the DSECT for the RTM2WA control block?  I did not find it
in either SYS1.MACLIB or SYS1.AMODGEN.

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Communication between two computer systems (LPARS or physical)

2021-08-12 Thread Steff Gladstone
Thank you all for your informative answers!

Steff

On Thu, 12 Aug 2021 at 12:19, Timothy Sipples  wrote:

> Lennie Dymoke-Bradshaw wrote:
> >Looking through the various answers here, I note that someone has
> >mentioned the need for some kind of security, so that others cannot
> >trigger actions they are not supposed to.
> >I think those security issues conflict with your requirement to run
> >synchronisation without any authorisation.
>
> I don't think that's a given. As long as the participants in this
> synchronization network can establish and maintain trust with one another,
> that should be fine even if none of them are particularly trusted by
> anything else outside their circle. Metaphorically it's like a secret
> society. DLTs (Blockchain networks) generally operate this way, for
> example. (I'm not necessarily suggesting a DLT-based approach in this
> case.)
>
> Have we learned yet whether or not it's acceptable if this synchronization
> network provides different answers if you ask different nodes the same
> question at exactly the same time? For example, if you have a 3 node
> network then hypothetically you could ask a question and if a majority of
> the nodes (2 out of 3) agree on a common answer, that's a valid answer. As
> another example, if the "truth" is 5 minutes out of date, that's OK, and a
> node will take some action if it isn't able to check in with its peers and
> maintain truth-consensus within 5 minute intervals.
>
> There are a LOT of possible options.
>
> - - - - - - - - - -
> Timothy Sipples
> I.T. Architect Executive
> Digital Asset & Other Industry Solutions
> IBM Z & LinuxONE
> - - - - - - - - - -
> E-Mail: sipp...@sg.ibm.com
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Communication between two computer systems (LPARS or physical)

2021-08-10 Thread Steff Gladstone
We have global data pointed to by a name-token that is available to all the
address spaces in each computer system.  We want to make sure that any
updates to the data in one system are broadcast to the other computer
systems in the installation (LPARs or physical computers).  Or at the very
least notify the other systems that their data is not up-to-date. What
would be the simplest and cheapest way to send some kind of signal from one
system to the other without requiring I/O to shared
DASD?

We thought of issuing a console command starting a started task in each of
the other computer systems  (the JES2 spool is shared by all the systems.) .
But this is problematic since the required SVC (34) requires that the
program be authorized.   Any other ideas?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Locating LE's CIB in CICS

2021-04-20 Thread Steff Gladstone
Greetings,

I would like to be able to locate, under CICS, the CIB representing the
original abend (ideally in the XPCTA GLUE exit) before LE intercepted it
and substituted its own 4038 user abend.   Not surprisingly, the CEE3CIB
callable routine abends on S0C4.

Anybody know how to do this?

All the best,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Finding the NETNAME within TSO

2021-03-16 Thread Steff Gladstone
How can I discover the netname of a TSO user from within TSO?  Either
directly in REXX or via a called assembler subroutine?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


VSAM write error: file status key = 24

2021-02-08 Thread Steff Gladstone
Greetings,

After REPRO-ing a VSAM KSDS file defined with shareoptions (4,3) to a file
defined with shareoptions (4,4), we started receiving the following error
on a write attempt (COBOL program):

Status key=24
Meaning: An attempt was made to write beyond the externally defined
boundaries of a relative or indexed file.


The (4,4) file is identical to the (4,3) file in all respects except for
the shareoptions.  The error never occurs for the (4,3) file and occurs
intermittently for the (4,4) file.  Can anyone suggest what the problem
might be?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Isolating a CSECT within a load module

2021-01-21 Thread Steff Gladstone
Thank you Greg, Paul and Max for your informative replies!

On Tue, 5 Jan 2021 at 15:12, Massimo Biancucci  wrote:

> I tried to develop you hints:
>
> // EXPORT SYMLIST=*
> // SET INPMOD=oldmd
> // SET OUTMOD=newmod
> // SET INPLIB=myold.lib
> // SET OUTLIB=mynew.lib
> // SET AMBDSN=AMBLIST3
> // SET DSP='MOD,PASS'  DSP='MOD,CATLG'
> //*---*
> //*   *
> //*---*
> //ST010  EXEC PGM=AMBLIST
> //SYSPRINT DD DSN=,DISP=(),
> // SPACE=(TRK,(5,5),RLSE)
> //LOADLIB  DD DISP=SHR,DSN=
> //SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
>  LISTIDR DDN=LOADLIB,MEMBER=
> /*
> //*---*
> //*   *
> //*---*
> //ST020  EXEC PGM=SORT
> //SYSOUT DD SYSOUT=*
> //SORTIN  DD DSN=,DISP=SHR
> //SORTOUT DD DSN=,DISP=(),
> // SPACE=(TRK,(5,5),RLSE),DCB=(LRECL=80,RECFM=FB,DSORG=PS)
> //SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
>  SORT FIELDS=COPY
>  OUTFIL FNAMES=SORTOUT,REMOVECC,
>   INCLUDE=(2,10,CH,EQ,C'CSECT:',AND,
>12,8,CH,NE,C''),
>  OUTREC=(C' REPLACE ',12,8,80:X),
>   TRAILER1=(' INCLUDE SYSLIB()',/,
>' NAME (R)')
> /*
> //*---*
> //*   *
> //*---*
> //ST030EXEC PGM=HEWL,
> // PARM='LET,XREF,MAP,LIST,NCAL'
> //SYSPRINT DD  SYSOUT=*
> //SYSUT1   DD  DSN=&,SPACE=(1024,(120,120),,,ROUND),
> // DCB=BUFNO=1
> //*YSLIN   DD DISP=SHR,DSN=J48017.OSET.LOAD(IRXINIT)
> //SYSLIB   DD  DISP=SHR,DSN=
> //SYSLMOD  DD  DISP=SHR,DSN=()
> //SYSLIN   DD  DISP=SHR,DSN=
> //*---*
> //*   *
> //*---*
> //ST040  EXEC PGM=AMBLIST
> //SYSPRINT DD SYSOUT=*
> //LOADLIB  DD DISP=SHR,DSN=
> //SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
>  LISTIDR DDN=LOADLIB,MEMBER=
>  LISTLOAD DDN=LOADLIB,MEMBER=
> /*
>
> and it seems it's still working.
> I'm sure it's possible to further optimize, anyway I think it's a kind of
> tool you use not so often.
> Anyway take the two of them as POC.
>
> Best regards.
> Max
>
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> Mail
> priva di virus. www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> Il giorno lun 4 gen 2021 alle ore 18:44 Paul Gilmartin <
> 000433f07816-dmarc-requ...@listserv.ua.edu> ha scritto:
>
> > On Mon, 4 Jan 2021 16:32:47 +0100, Massimo Biancucci wrote:
> > >
> > >I've tried to use sort to help.
> > >
> > >// EXPORT SYMLIST=*
> > >// SET INPMOD=oldmd
> > >// SET OUTMOD=newmod
> > >// SET INPLIB=myold.lib
> > >// SET OUTLIB=mynew.lib
> > >
> > I like that sort of parameterizing.  It puts the variables up front,
> > viewable at a glance.  I'd add the AMBLIST2 DSNs to the SET list.
> >
> > Can something such as "SET DISP={PASS|CATLG} be used to control
> > temp vs. permanent workfiles?
> >
> > >//*   *
> > >//*---*
> > >//ST010  EXEC PGM=IDCAMS
> > >//SYSPRINT DD SYSOUT=*
> > >//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
> > > DELETE 
> > > IF MAXCC=8 THEN SET MAXCC=0
> > >/*
> > >//*---*
> > >//*   *
> > >//*---*
> > >//ST020  EXEC PGM=AMBLIST
> > >//SYSPRINT DD DSN=,DISP=(,CATLG),
> > >// SPACE=(TRK,(5,5),RLSE)
> > >//LOADLIB  DD DISP=SHR,DSN=
> > >//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
> > > LISTIDR DDN=LOADLIB,MEMBER=
> > >/*...
> > My very peculiar preference is to omit the IDCAMS steps and code either:
> > //HANDLE DD DSN=,DISP=(MOD,CATLG),
> > // SPACE=(TRK,(5,5),RLSE)
> > //SYSPRINT  DD  DISP=OLD,DSN=*.HANDLE,VOL=REF=*.HANDLE
> >
> > Or:
> > //HANDLE DD DSN=,DISP=(MOD,DELETE),
> > // SPACE=(TRK,(5,5),RLSE)
> > //SYSPRINT DD DSN=,DISP=(MOD,CATLG),
> > // SPACE=(TRK,(5,5),RLSE)
> >
> > But, performance?  Is a failing IDCAMS step less overhead than
> > an otiose DISP=(MOD,DELETE) etc.?
> >
> > >I used "no-temp" dataset to better help in understanding the process.
> >
> > -- gil
> >
> > --
> > For IBM-MAIN subscribe / signoff / archive access 

Re: VSAM file discrepancies

2021-01-19 Thread Steff Gladstone
The duplication exists in the data, not in the index.

On Tue, 19 Jan 2021 at 18:22, Cameron Conacher  wrote:

> A KSDS with duplicate full primary key values?
> Are you sure?
>
> Sent from my iPhone
>
> > On Jan 19, 2021, at 10:19 AM, Steff Gladstone 
> wrote:
> >
> > Greetings,
> >
> > We are trying to figure out how a VSAM file became compromised. That is,
> > even though the primary key is unique, when we do a REPRO, we see that
> the
> > data contains an extra record with the same key.
> >
> > The file is updated from two different computers via a batch COBOL
> program.
> > The share options are (4,3) and an enqueue (with parameter SYSTEMS) is
> > performed (using an assembler subroutine) before any update is done.  The
> > site has a 3rd-party product from CA that propagates the ENQ from one
> > computer to the other.  We even tested the ENQ and saw that an update
> from
> > the second computer was blocked when the first computer previously issued
> > an ENQ prior to its update.
> >
> > It looks as if an update in one computer has not been committed from
> memory
> > to disk before the update in the second computer occurs.  Which
> definitions
> > are lacking that would prevent this from happening?
> >
> > Thanks in advance,
> > Steff Gladstone
> >
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


VSAM file discrepancies

2021-01-19 Thread Steff Gladstone
Greetings,

We are trying to figure out how a VSAM file became compromised. That is,
even though the primary key is unique, when we do a REPRO, we see that the
data contains an extra record with the same key.

The file is updated from two different computers via a batch COBOL program.
The share options are (4,3) and an enqueue (with parameter SYSTEMS) is
performed (using an assembler subroutine) before any update is done.  The
site has a 3rd-party product from CA that propagates the ENQ from one
computer to the other.  We even tested the ENQ and saw that an update from
the second computer was blocked when the first computer previously issued
an ENQ prior to its update.

It looks as if an update in one computer has not been committed from memory
to disk before the update in the second computer occurs.  Which definitions
are lacking that would prevent this from happening?

Thanks in advance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Isolating a CSECT within a load module

2021-01-04 Thread Steff Gladstone
Greetings,

Can anyone suggest a method of isolating or extracting a CSECT
(statically-linked called program) from a load module?  The only (clumsy)
method I can think of is using (within the linkage editor or binder) a
REPLACE statement ahead of an INCLUDE statement and specifying in the
REPLACE all of the other CSECTS in the load module.  For example, if the
load module is called LOADMOD1 and contains CSECTS  A,B,C,D,E,F,G,H and I
want to isolate CSECT F, I would code:

  REPLACE A,B,C,D,E,G,H
  INCLUDE SYSLIB(LOADMOD1)
  NAME F(R)

Obviously this is unwieldy for a load module with lots of CSECTs.

Does anyone have a more elegant way of doing this?

Thanks,
Steff

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Calculating duration from subtracting TOD clocks

2020-12-01 Thread Steff Gladstone
Thank you!

On Thu, 26 Nov 2020 at 23:32, Charles Mills  wrote:

> I should add that I have code that does exactly what you are talking
> about. That's why I am familiar with the problem.
>
> // Keep track of time in [particular function]
> Platform::STCKF();
>
> // call [a particular function here]
>
> // Keep track of time in [particular function]
> Platform::STCKF();
> timeInFunction += (TOD - EntryTOD);
>
> Platform::STCKF() is an inline call to __stckf() which is a hardware STCKF.
>
> Charles
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Charles Mills
> Sent: Thursday, November 26, 2020 1:16 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Calculating duration from subtracting TOD clocks
>
> @Steff, I totally "get" your question. You have some function that is
> called repeatedly and you want to know the total elapsed time spent in that
> function. So you want to get a TOD on the way in, subtract it from a TOD on
> the way out, and then sum those differences. Makes perfect sense. And you
> are worried that you are factoring in 12 irrelevant bits that may add up
> over time.
>
> You are (mostly) mathematically correct but if it were me I would not
> worry about it. First of all, I suspect that in modern machines the actual
> clock resolution is a lot finer than 1 usecond, so not all of those 12 bits
> are irrelevant. Second, I suspect much of the error would cancel itself
> out. But yes, I don't really know, and worst case, you could be off by
> almost a usecond on every difference, and after a few thousand sums it
> might amount to something.
>
> What to do? Well, you could just AND off those 12 bits. Little harm,
> although on a box with finer resolution you are throwing away information
> that might be relevant. How about just using STCKF; it has two benefits:
> first, as the name implies, it is FASTER than an STCK in certain
> circumstances -- much faster (the exact circumstances are irrelevant to
> this discussion, but trust me, it is a LOT faster sometimes). And second,
> the PoOp says "For STORE CLOCK FAST, when the value of a running clock is
> stored, bits to the right of the rightmost bit that is incremented are
> stored as zeros."
>
> QED
>
> Charles
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Steff Gladstone
> Sent: Thursday, November 26, 2020 7:08 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Calculating duration from subtracting TOD clocks
>
> Could someone answer 4gb's 11-year-late question?
>
> On Tuesday, April 17, 2018 at 11:53:30 PM UTC+3, 4gb...@gmail.com wrote:
>
> > On Monday, September 3, 2007 at 4:38:21 PM UTC-7, Ludmila Koganer wrote:
> > > Hi,
> > > I need to subtract two TOD times to find elapsed time. Currently I
> convert
> > > the two TOD times with STCKCONV and determine the elaped time
> individually,
> > > and then compute the difference. This works. However I thought I could
> > > optimize the conversion, a little bit and I was wondering why not
> subtract the
> > > two TOD times to begin with.
> > >
> > > As I understand TOD time is the number of mic seconds elapsed since
> midnight
> > > of 1900-01-01. So when I subtract one TOD value from another the
> duration
> > > must be in micro seconds.
>
> > I'm 11 years late. Shouldn't you clear the low order 12 bits of each TOD
> value before adding or subtracting them? Those low order bits are not
> fractions of a microsecond, so including them in the math can produce up to
> a micro second error. If you add a series of TOD values without clearing
> the low bits that can add up to real money.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Calculating duration by subtracting TOD clocks

2020-11-26 Thread Steff Gladstone
Could someone answer 4gb's question?

On Tuesday, April 17, 2018 at 11:53:30 PM UTC+3, 4gb...@gmail.com wrote:

>  Shouldn't you clear the low order 12 bits of each TOD value before
adding or subtracting them? Those low order bits are not fractions of a
microsecond, so including them in the math can produce up to a micro second
error. If you add a series of TOD values without clearing the low bits that
can add up to real money.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Calculating duration from subtracting TOD clocks

2020-11-26 Thread Steff Gladstone
Could someone answer 4gb's 11-year-late question?

On Tuesday, April 17, 2018 at 11:53:30 PM UTC+3, 4gb...@gmail.com wrote:

> On Monday, September 3, 2007 at 4:38:21 PM UTC-7, Ludmila Koganer wrote:
> > Hi,
> > I need to subtract two TOD times to find elapsed time. Currently I
convert
> > the two TOD times with STCKCONV and determine the elaped time
individually,
> > and then compute the difference. This works. However I thought I could
> > optimize the conversion, a little bit and I was wondering why not
subtract the
> > two TOD times to begin with.
> >
> > As I understand TOD time is the number of mic seconds elapsed since
midnight
> > of 1900-01-01. So when I subtract one TOD value from another the
duration
> > must be in micro seconds.

> I'm 11 years late. Shouldn't you clear the low order 12 bits of each TOD
value before adding or subtracting them? Those low order bits are not
fractions of a microsecond, so including them in the math can produce up to
a micro second error. If you add a series of TOD values without clearing
the low bits that can add up to real money.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Using STCKCONV in a CICS GLUE

2020-06-16 Thread Steff Gladstone
We need to capture the date and time in a GLUE and need more precision than
the CICS variables give us.

Can we use the STCKCONV macro in a GLUE?  Could it cause all of CICS to
enter a wait?  Or is it essentially pure CPU?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Tracking called (non-main) programs using SMF records

2019-11-13 Thread Steff Gladstone
We would like to clean up our load libraries by deleting unused programs.

Is there any way to use SMF data to track real-time usage of programs which
are not main programs but are called by other programs?

We were under the impression  that only executions of main programs (PGM=)
 were recorded with SMF.  Scanning program sources for called programs is
unsatisfactory for us since the call could be dynamic (name of program
contained in a variable) or conditional on a particular set of
circumstances that never occurs in practice.

Thanks in advance!

Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RACF: Limiting update-authorization of a file to a particular application

2019-03-07 Thread Steff Gladstone
But if I TSOEXEC CALL the Cobol I/O routine, will it retain the context
between calls? Won't the DCBs and ACBs and working storage be reinitialized
on every call?

בתאריך יום ה׳, 7 במרץ 2019, 02:34, מאת Walt Farrell ‏:

> On Wed, 6 Mar 2019 19:29:05 +0200, Steff Gladstone <
> steff.gladst...@gmail.com> wrote:
>
> >One further question:
> >
> >Would use of IKJEFTSI/IKJEFTSR/IKJEFTST  work here?  I.e., provide an
> >isolated eenvironment for RACF while maintaining continuity within the I/O
> >routine without re-initializing its working storage on each call?
>
> No. Your only good approach for doing this under TSO/E, if you're having
> problems with a dirty environment, is to TSOEXEC CALL your COBOL program,
> and have it run entirely isolated in the parallel TMP. You will, though,
> still need to make sure you have a properly constructed PROGRAM ** profile
> to ensure that the parallel TMP stays clean.
>
> Of course, a multiple address space environment, perhaps one created using
> the UNIX System Services fork() operation could also work. That's one
> variation of the approach that Shmuel suggested.
>
> --
> Walt
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RACF: Limiting update-authorization of a file to a particular application

2019-03-06 Thread Steff Gladstone
One further question:

Would use of IKJEFTSI/IKJEFTSR/IKJEFTST  work here?  I.e., provide an
isolated eenvironment for RACF while maintaining continuity within the I/O
routine without re-initializing its working storage on each call?

On Wed, 6 Mar 2019 at 19:01, Steff Gladstone 
wrote:

> Although we have progressed with creating an program-controlled
> environment, we are still experiencing problems in this area.
>
> We have a COBOL routine whose purpose is to open a VSAM data set on the
> first call, perform I/O (read and write) on subsequent calls, and finally
> close the dataset on the final call.  We want to force most users to update
> the VSAM dataset only via this COBOL program, allowing only privileged
> users (= system programmers) the option of updating the dataset using other
> programs or utilities.   For this reason we opted to implement RACF
> program-control, as per Shmuel Metz's suggestion.
>
> The COBOL I/O routine is called by a fairly complex TSO/ISPF application.
> So we decided to communicate to the I/O routine via a subtask in order to
> simplify the environment (as per Walt Farrell's claim that a new TCB
> creates a parallel isolated environment for RACF).
>
> First we tried implementing it the "stupid" way, with COBOL calling REXX
> calling the COBOL I/O routine (via TSOEXEC, CALL, or LINKPGM - it didn't
> matter).  We expected the call to REXX to create a new subtask.  The RACF
> program control in fact worked well in this scenario, but (as expected) the
> COBOL I/O routine (with its working storage and DCB's) is reinitialized on
> each call and so we have to re-OPEN on each call and there is no continuity
> between read and write calls.
>
> Then we did the following:  we wrote an LE-enabled assembler routine that
> attaches a subtask (also LE-enabled) on the first call.  The subtask loads
> the COBOL I/O routine then waits for work.  On every subsequent call to the
> assembler routine the subtask is posted and it calls the COBOL I/O routine
> and returns the results to the assembler routine and re-enters a wait till
> the next call.  And so on, until the final call when the subtask terminates
> and is detached.
>
> This works ok for privileged users (i.e., the subtasking and  I/O logic
> works fine, the COBOL I/O routine is not reintiaiized on each call, and of
> course there are no RACF issues).  But for non-privileged users RACF issues
> the following error message just after the COBOL I/O routine is called by
> the subtask::
>
> ICH418I CONDITIONAL ACCESS LIST FOR DATA SET output.dataset  DID NOT GRANT
> AUTHORITY TO PROGRAM(S): EXEC CALL EXEC CALL
>
> This despite the fact that the COBOL I/O routine is executing under a
> separate subtask.
>
> Can anyone help us out here?
>
> Thanks in advance,
> Steff Gladstone
>
>
>
>
> On Thu, 21 Feb 2019 at 23:33, Walt Farrell  wrote:
>
>> On Thu, 21 Feb 2019 15:22:33 +, Seymour J Metz 
>> wrote:
>>
>> >AFAIK it won't reset the dirty bit. It does isolate AC(0) from AC(1).
>>
>> Yes, it will, for that isolated parallel environment.
>>
>> --
>> Walt
>>
>> --
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>>
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RACF: Limiting update-authorization of a file to a particular application

2019-03-06 Thread Steff Gladstone
Although we have progressed with creating an program-controlled
environment, we are still experiencing problems in this area.

We have a COBOL routine whose purpose is to open a VSAM data set on the
first call, perform I/O (read and write) on subsequent calls, and finally
close the dataset on the final call.  We want to force most users to update
the VSAM dataset only via this COBOL program, allowing only privileged
users (= system programmers) the option of updating the dataset using other
programs or utilities.   For this reason we opted to implement RACF
program-control, as per Shmuel Metz's suggestion.

The COBOL I/O routine is called by a fairly complex TSO/ISPF application.
So we decided to communicate to the I/O routine via a subtask in order to
simplify the environment (as per Walt Farrell's claim that a new TCB
creates a parallel isolated environment for RACF).

First we tried implementing it the "stupid" way, with COBOL calling REXX
calling the COBOL I/O routine (via TSOEXEC, CALL, or LINKPGM - it didn't
matter).  We expected the call to REXX to create a new subtask.  The RACF
program control in fact worked well in this scenario, but (as expected) the
COBOL I/O routine (with its working storage and DCB's) is reinitialized on
each call and so we have to re-OPEN on each call and there is no continuity
between read and write calls.

Then we did the following:  we wrote an LE-enabled assembler routine that
attaches a subtask (also LE-enabled) on the first call.  The subtask loads
the COBOL I/O routine then waits for work.  On every subsequent call to the
assembler routine the subtask is posted and it calls the COBOL I/O routine
and returns the results to the assembler routine and re-enters a wait till
the next call.  And so on, until the final call when the subtask terminates
and is detached.

This works ok for privileged users (i.e., the subtasking and  I/O logic
works fine, the COBOL I/O routine is not reintiaiized on each call, and of
course there are no RACF issues).  But for non-privileged users RACF issues
the following error message just after the COBOL I/O routine is called by
the subtask::

ICH418I CONDITIONAL ACCESS LIST FOR DATA SET output.dataset  DID NOT GRANT
AUTHORITY TO PROGRAM(S): EXEC CALL EXEC CALL

This despite the fact that the COBOL I/O routine is executing under a
separate subtask.

Can anyone help us out here?

Thanks in advance,
Steff Gladstone




On Thu, 21 Feb 2019 at 23:33, Walt Farrell  wrote:

> On Thu, 21 Feb 2019 15:22:33 +, Seymour J Metz  wrote:
>
> >AFAIK it won't reset the dirty bit. It does isolate AC(0) from AC(1).
>
> Yes, it will, for that isolated parallel environment.
>
> --
> Walt
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RACF: Limiting update-authorization of a file to a particular application

2019-02-20 Thread Steff Gladstone
Do I understand correctly that TSOEXEC CALL creates a new subtask
environment which is "insulated" from the goings-on in the mother task?
Would specifying TASKLIB further ensure that only those modules
loaded/linked/attached from the TASKLIB library need be RACF-authorized?

Or is there something I am missing?

On Mon, 18 Feb 2019 at 16:48, Walt Farrell  wrote:

> On Sun, 17 Feb 2019 18:05:59 +0200, Steff Gladstone <
> steff.gladst...@gmail.com> wrote:
>
> >Ok. We have been playing around with program control.If PROG1 (a COBOL
> >program incidentally) is to be allowed exclusively to update file MY.FILE,
> >then we:
> >
> >1. introduced PROG1 into the list of programs in AUTHPGM in member
> IKJEFT00
>
> Unless the program is linkedited with AC(1) and needs to run authorized
> (most COBOL programs don't) I don't see a reason to put it in AUTHPGM.
>
> You will likely run into problems in a TSO environment with the
> environment being marked dirty, as you noted.
>
> Your best hope to avoid that is to make sure you've followed the
> instructions in the RACF Security Administrators Guide about defining the
> PROGRAM ** profie and all the libraries that you should specify for its
> ADDMEM operand. Make sure you use the specified UACC value, too.
>
> If that doesn't work, then your next approach would be to try TSOEXEC CALL
> ... to invoke the program.
>
> Really, all of this is explained in the Security Administrators Guide in
> the sections on Program Control and Program Access to Data (PADS), along
> with some examples and recommendations. As getting this working under TSO
> is very difficult, my best recommendation is to read those sections and
> follow the instructions exactly.
>
> --
> Walt
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RACF: Limiting update-authorization of a file to a particular application

2019-02-17 Thread Steff Gladstone
Ok. We have been playing around with program control.If PROG1 (a COBOL
program incidentally) is to be allowed exclusively to update file MY.FILE,
then we:

1. introduced PROG1 into the list of programs in AUTHPGM in member IKJEFT00
2. Executed command RDEFINE for the file (and additionally for the LE
runtime libraries - not sure if necessary) and PERMIT 'MY.FILE'
 WHEN(PROGRAM(PROG1)).

The results were:

1. Executing PGM=PROG1 in batch -> good results

2. Executing a REXX procedure under PGM=IKJEFT01 in batch  -> good results
(when invoked either by CALL 'lib(PROG1)'  or SELECT PGM(PROG1)

3. Executing a REXX procedure in TSO foreground invoking program with
CALL 'lib(PROG1)'  ->  receives the following error:

ISPS118L Service not invoked. A valid ISPF environment does not exist.


4. Executing a REXX procedure in TSO foreground invoking program with
SELECT PGM(PROG1)   ->  receives the following error:

IKJEFTSR interface error
Authorized program 'PROG1'.  Return code=20  Reason code=40.

Current dialog statement:
SELECT PGM(PROG1)

We gather that we are running into the "dirty bit" problem that has been
documented in various forums.   What can we do to get around this (we need
the program control feature under TSO foreground as well)?

Thanks in advance,
Steff Gladstone

On Thu, 7 Feb 2019 at 18:06, Seymour J Metz  wrote:

> Program control, but pay close attention to the restrictions.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Steff Gladstone 
> Sent: Thursday, February 7, 2019 6:37 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: RACF: Limiting update-authorization of a file to a particular
> application
>
> Greetings,
>
>
>
> We have an TSO application for end-users that allows them to update certain
> VSAM and PDS files.  In order for them to update these files we of course
> have to give their users update-authorization under RACF for those files.
>
>
>
> We want to limit their ability to update the files only via the particular
> TSO application (or via a particular I/O routine used by the application)
> and not via any other application program or IBM utility (e.g., IEBCOPY,
> ISPF on-line edit or utilities, etc.).
>
>
>
> How can we define the RACF authorizations in such a way as to limit the
> end-users'  update capabilities to the application (or to a particular I/O
> routine) alone?   Would the same (or similar) definitions work for a site
> using Top Secret instead of RACF?
>
>
>
> Thank you in advance,
> Steff Gladstone
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


RACF: Limiting update-authorization of a file to a particular application

2019-02-07 Thread Steff Gladstone
Greetings,



We have an TSO application for end-users that allows them to update certain
VSAM and PDS files.  In order for them to update these files we of course
have to give their users update-authorization under RACF for those files.



We want to limit their ability to update the files only via the particular
TSO application (or via a particular I/O routine used by the application)
and not via any other application program or IBM utility (e.g., IEBCOPY,
ISPF on-line edit or utilities, etc.).



How can we define the RACF authorizations in such a way as to limit the
end-users'  update capabilities to the application (or to a particular I/O
routine) alone?   Would the same (or similar) definitions work for a site
using Top Secret instead of RACF?



Thank you in advance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Looking for an appropriate system exit

2018-11-26 Thread Steff Gladstone
Thank you one and all for your excellent advice.

בתאריך יום ב׳, 26 בנוב׳ 2018, 21:36, מאת 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
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Jesse 1 Robinson 
> Sent: Saturday, November 24, 2018 3:17 PM
> To: IBM-MAIN@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
> robin...@sce.com
>
>
> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Seymour J Metz
> Sent: Saturday, November 24, 2018 11:49 AM
> To: IBM-MAIN@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  on behalf
> of Steff Gladstone 
> Sent: Thursday, November 22, 2018 3:53 PM
> To: IBM-MAIN@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
>
>
>
> On Fri, 5 Oct 2018 at 16:17, Charles Mills  wrote:
>
> > 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-MAIN@LISTSERV.UA.EDU]
> > On Behalf Of Elardus Engelbrecht
> > Sent: Friday, October 5, 2018 6:20 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: Looking for an appropriate system exit
> >
> > Peter Relson wrote:
> >
> > >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 ex

Re: Looking for an appropriate system exit

2018-11-22 Thread Steff Gladstone
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



On Fri, 5 Oct 2018 at 16:17, Charles Mills  wrote:

> 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-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Elardus Engelbrecht
> Sent: Friday, October 5, 2018 6:20 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Looking for an appropriate system exit
>
> Peter Relson wrote:
>
> >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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Looking for an appropriate system exit

2018-10-04 Thread Steff Gladstone
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=,MOD=,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.

On 8 December 2017 at 15:47, Binyamin Dissen 
wrote:

>
> 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 <
> steff.gladst...@gmail.com>
> wrote:
>
> :>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 <
> bdis...@dissensoftware.com
> :>> wrote:
> :>
> :>> Can you give an example or two?
> :>>
> :>> On Wed, 6 Dec 2017 09:13:47 +0200 Steff Gladstone <
> :>> steff.gladst...@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 
> :>> 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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> :>>
>
> --
> Binyamin Dissen 
> 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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: TCBFSA field in the TCB DSECT

2018-02-13 Thread Steff Gladstone
Or you could check if R14 is pointing to a SVC 3 instruction.

Actually the routine (not written by me) was using the FSA to retrieve the
pointer to the value of the PARM= parameter (saved R1).
Presumably that's a valid use as well.

It would make sense if the FSA is always below the line.  Although
theoretically the system could check the AMODE of the first program and
allocate the SA accordingly.

On 13 February 2018 at 13:02, Bernd Oppolzer <bernd.oppol...@t-online.de>
wrote:

> Hi,
>
> IMO, the first save area should always be below the line.
> It is provided by the operating system so that the main program of the
> called application (EXEC PGM=...) can store the registers on call there.
> And the first program may be AMODE 24 :-)
>
> On the other hand, I would never use TCBFSA to do anything with it.
> Because, for example, you would try to walk the save area chain from there,
> you are stuck, because the forward pointers are not set correctly by LE
> and others.
> What you should do instead: fetch register 13 and walk back, by using the
> backward
> pointers, which are much more reliable in the general case. When doing
> this,
> you could check for the value in TCBFSA to see, if you arrived at the
> first save
> area. But you could also check for NULL in the backward pointer.
>
> HTH, kind regards
>
> Bernd
>
>
>
> Am 13.02.2018 um 10:07 schrieb Steff Gladstone:
>
>> Hi,
>>
>> I am in the process of converting several routines to AMODE=31 RMODE=ANY.
>> One of them references the address of the first problem program save area
>> found in the TCB.
>>
>> The field is defined as follows:
>>
>> TCBFSA   DS0A -ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA
>>
>>  DSFL1 -   FIRST BYTE OF TCBFSA
>> @G381P9A
>>
>> TCBFSAB  DSAL3 -   ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA
>>
>> My question:  what is the status of the first byte?  It does not seem to
>> contain flag bits as is often the case.  On the other hand, defining the
>> field TCBFSAB seems to imply that the address is a 24-bit address.  So in
>> AMODE=31 can the first problem program save area (which is provided by the
>> system to the top-level program) be above the line?  Should I relate to
>> all
>> four bytes as the address of the FSA?  Or could the first byte contain
>> garbage?
>>
>> Thanks,
>> Steff
>>
>> --
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>>
>>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


TCBFSA field in the TCB DSECT

2018-02-13 Thread Steff Gladstone
Hi,

I am in the process of converting several routines to AMODE=31 RMODE=ANY.
One of them references the address of the first problem program save area
found in the TCB.

The field is defined as follows:

TCBFSA   DS0A -ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA

DSFL1 -   FIRST BYTE OF TCBFSA
@G381P9A

TCBFSAB  DSAL3 -   ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA

My question:  what is the status of the first byte?  It does not seem to
contain flag bits as is often the case.  On the other hand, defining the
field TCBFSAB seems to imply that the address is a 24-bit address.  So in
AMODE=31 can the first problem program save area (which is provided by the
system to the top-level program) be above the line?  Should I relate to all
four bytes as the address of the FSA?  Or could the first byte contain
garbage?

Thanks,
Steff

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Looking for an appropriate system exit

2017-12-05 Thread Steff Gladstone
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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Cobol 5/6 - Compile listing integrated into load module

2017-12-05 Thread Steff Gladstone
In versions 5 and 6 of Cobol, IBM has introduced the option of including
the compile listing (or at least the data from which a compile listing can
be derived) into the load module for subsequent debug processing.
Presumably this obviates the need to maintain something like the DDIO file
required by Compuware's Expeditor product.

My question is: does anybody know where this option is documented in
detail, including:

  - all of the various compile-time parameters provided for specifying
this option

  -  how the compile information in the load module can be retrieved?
 Or is this totally proprietary information that IBM keeps under
tabs?

Thanks in advance for any assistance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


COBDSACB control block

2017-02-13 Thread Steff Gladstone
Does anybody know where we can find precise and complete information
regarding the contents of the COBDSACB control block of COBOL?

Thank you,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


CEEBINT

2017-02-13 Thread Steff Gladstone
We are considering using the user exit CEEBINT. Is there anyone out there
with experience using the exit who could point us to the appropriate
documentation detailing how to use it as well as any other suggestions as
to its use?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


A further question regarding COBOL5 and CEEDUMP

2017-01-26 Thread Steff Gladstone
A further question: the CEEDUMP we receive in COBOL 5 lacks a dump of the
WORKING STORAGE SECTION.   Can this be remedied by changing compile-time or
run-time parameters?

Please advise.

Thank you,
Steff Gladstone

On Sun, Jan 8, 2017 at 6:51 PM, Steff Gladstone <steff.gladst...@gmail.com>
wrote:

> Are there any whizzes out there who specialize in reading and deciphering
> CEEDUMPs?
> I have a question for you.  In a COBOL5  CEEDUMP, how do I locate the
> *index* of an array (i.e., an array that is defined with "indexed by") in
> the dump?
>
> Thanks in advance,
> Steff Gladstone
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


COBOL5 and ceedump

2017-01-08 Thread Steff Gladstone
Are there any whizzes out there who specialize in reading and deciphering
CEEDUMPs?
I have a question for you.  In a COBOL5  CEEDUMP, how do I locate the
*index* of an array (i.e., an array that is defined with "indexed by") in
the dump?

Thanks in advance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Recommended logstream policy for SYSVIEW statistical historical data

2017-01-02 Thread Steff Gladstone
We are moving from TMON to SYSVIEW and are encountering very long
processing times when we attempt to generate batch reports from Sysview
statistical data that accumulated during the previous day (the data is
written to a System Logger logstream).   Apparently the report utility is
starting its scan of the data from a much earlier date.

What would be the recommended logstream policy for a logstream of this
type?  Is our assumption correct that this is an active (as opposed to
funnel-type) logstream application?

Thanks in advance for any assistance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


InfoSphere Classic CDC for z/OS

2016-11-21 Thread Steff Gladstone
Does anyone have any experience with the above software, as a tool to
capture updates to a "classic" VSAM file on the mainframe and propagate
them to a open-systems data base?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Freeing up space in a VSAM file

2016-03-14 Thread Steff Gladstone
Greetings,

We have a KSDS file that gradually fills up with records.  After deleting a
large number of records we still received nonzero response codes when
trying to add new records indicating that there is no available space in
the file.  We have no alternative but to disable access to the file and
reorganize it, causing quite a disruption to operations.

Presumably this is because of the way the indexes are organized.  Any
advice?  What parameters do you suggest we "play" with to ameliorate the
situation?

Thanks in advance,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ENQ for the life of the job

2015-04-21 Thread Steff Gladstone
Even without modifying the SWA with information for the DD, as you
suggested earlier?


On Tue, Apr 21, 2015 at 2:50 PM, John McKown john.archie.mck...@gmail.com
wrote:

 On Tue, Apr 21, 2015 at 3:00 AM, Steff Gladstone 
 steff.gladst...@gmail.com
 wrote:

  Thank you all for for help.  The obvious question that remains is:  how
  does the operating systen itself maintain a continuous ENQ over several
 job
  steps for a dataset allocated in the first step with disp=(mod,pass)?  Is
  there a special privileged ENQ operation that only the operating system
 has
  access to?
 
 
 ​No, there is not a special ENQ. The initiator TCB, which exists for as
 long as the initiator is running, issues the ENQ. ​

 ​The initiator (in general terms) is what reads the ​parsed JCL and creates
 the SWA control blocks which represent the job. This code then knows the
 DSNs in the job and issues a single ENQ for _all_ of them before starting
 the first step. As each step ends, the initiator does a DEQ on the DSNs
 which are not going to be used in subsequent steps. At the end of the job,
 it DEQs whatever DSNs are left.

 This means that you _could_ use a directed ENQ to put the DSN on the ENQ
 chain for the initiator TCB, as you mentioned in a previous post. But since
 the initiator does not know anything about that, it will not know to do a
 DEQ to release it at end of job. This is why you would need a terminating
 step to do the DEQ. Thinking about it a bit more, given what Mr. Relson
 said about RTM, doing this _should_ work even if the initiator terminates
 abnormally since RTM should clean up the ENQs during EOM processing.


 --
 If you sent twitter messages while exploring, are you on a textpedition?

 He's about as useful as a wax frying pan.

 10 to the 12th power microphones = 1 Megaphone

 Maranatha! 
 John McKown

 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Fwd: ENQ for the life of the job

2015-04-20 Thread Steff Gladstone
Greetings,

How do I use the ISGENQ macro in such a way that the ENQ lasts for the life
of the entire job (or several job steps) and not just for the life of a
single job-step?  Would specifying the TCB address of the initiator TCB on
the TCB parameter work?  Any better ideas?

Thanks,
Steff Gladstone

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ENQ for the life of the job

2015-04-20 Thread Steff Gladstone
The ENQ has to be transparent to the JCL.   Could I dynamically allocate a
dataset with DISP=(OLD,PASS)?  As I recall the dynamic allocation does not
permit the use of PASS.


On Mon, Apr 20, 2015 at 5:30 PM, Blaicher, Christopher Y. 
cblaic...@syncsort.com wrote:

 I guess you could do that, assign the initiator TCB to the ENQ, but what
 happens if the job abends before the step you do the DEQ in?

 I think this will work - If the purpose is to prevent two similar
 processes, then why not use a common data set and allocate it as
 DISP=(OLD,PASS).  That way the ENQ on the data set will last for the
 duration of the job, and if it dies early the ENQ automatically goes away.

 Chris Blaicher
 Technical Architect
 Software Development
 Syncsort Incorporated
 50 Tice Boulevard, Woodcliff Lake, NJ 07677
 P: 201-930-8234  |  M: 512-627-3803
 E: cblaic...@syncsort.com

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
 Behalf Of Steff Gladstone
 Sent: Monday, April 20, 2015 10:13 AM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: ENQ for the life of the job

 How do I use the ISGENQ macro in such a way that the ENQ lasts for the
 life of the entire job (or several job steps) and not just for the life of
 a single job-step?  Would specifying the TCB address of the initiator TCB
 on the TCB parameter work?  Any better ideas?

 Thanks,
 Steff Gladstone

 --
 For IBM-MAIN subscribe / signoff / archive access instructions, send email
 to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

 



 ATTENTION: -

 The information contained in this message (including any files transmitted
 with this message) may contain proprietary, trade secret or other
 confidential and/or legally privileged information. Any pricing information
 contained in this message or in any files transmitted with this message is
 always confidential and cannot be shared with any third parties without
 prior written approval from Syncsort. This message is intended to be read
 only by the individual or entity to whom it is addressed or by their
 designee. If the reader of this message is not the intended recipient, you
 are on notice that any use, disclosure, copying or distribution of this
 message, in any form, is strictly prohibited. If you have received this
 message in error, please immediately notify the sender and/or Syncsort and
 destroy all copies of this message in your possession, custody or control.

 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ENQ for the life of the job

2015-04-20 Thread Steff Gladstone
I suppose a final job-step to do the DEQ with COND=EVEN would not always do
the trick. As I recall there are some types of abends that flush the job
including steps with COND=EVEN, right?

On Mon, Apr 20, 2015 at 6:09 PM, John McKown john.archie.mck...@gmail.com
wrote:

 On Mon, Apr 20, 2015 at 9:41 AM, Steff Gladstone 
 steff.gladst...@gmail.com
 wrote:

  The ENQ has to be transparent to the JCL.   Could I dynamically allocate
 a
  dataset with DISP=(OLD,PASS)?  As I recall the dynamic allocation does
 not
  permit the use of PASS.
 

 ​Hum, I'm going to go way out on a limb and start sawing. grin/

 I wonder if it would be possible to do a directed ENQ of a SYSDSN to the
 initiator TCB and then modify the SWA  to generate the internal
 information for a DD and place that as if it had been in a DD in the JCL. I
 am likely not saying that very well. But I'm thinking that products like
 CA-11 do this sort of thing for restart (in order to change GDG generation
 numbers). If this were possible, then perhaps the initiator would do the
 DEQ at end of job.

 Perhaps Chris, or another ISV person, would know.​



 
 
  On Mon, Apr 20, 2015 at 5:30 PM, Blaicher, Christopher Y. 
  cblaic...@syncsort.com wrote:
 
   I guess you could do that, assign the initiator TCB to the ENQ, but
 what
   happens if the job abends before the step you do the DEQ in?
  
   I think this will work - If the purpose is to prevent two similar
   processes, then why not use a common data set and allocate it as
   DISP=(OLD,PASS).  That way the ENQ on the data set will last for the
   duration of the job, and if it dies early the ENQ automatically goes
  away.
  
   Chris Blaicher
 
 --
 If you sent twitter messages while exploring, are you on a textpedition?

 He's about as useful as a wax frying pan.

 10 to the 12th power microphones = 1 Megaphone

 Maranatha! 
 John McKown

 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ENQ for the life of the job

2015-04-20 Thread Steff Gladstone
The job is performing a change management system operation (moving a new
program version to production, saving previous generations, providing for
possible fallback, etc.).  The operation for various reasons must be
performed in several job steps. We want to ENQ on the name of the program
being handled to prevent other operations or changes being made to that
program in parallel. Of course the ENQ must remain in effect for the
duration of the entire operation.

On Mon, Apr 20, 2015 at 6:19 PM, Jousma, David david.jou...@53.com wrote:

 Maybe if you can explain in more detail what situation you are trying to
 solve for would help?

 _
 Dave Jousma
 Assistant Vice President, Mainframe Engineering
 david.jou...@53.com
 1830 East Paris, Grand Rapids, MI  49546 MD RSCB2H
 p 616.653.8429
 f 616.653.2717



 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
 Behalf Of Steff Gladstone
 Sent: Monday, April 20, 2015 11:18 AM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: ENQ for the life of the job

 I suppose a final job-step to do the DEQ with COND=EVEN would not always
 do the trick. As I recall there are some types of abends that flush the job
 including steps with COND=EVEN, right?

 On Mon, Apr 20, 2015 at 6:09 PM, John McKown john.archie.mck...@gmail.com
 
 wrote:

  On Mon, Apr 20, 2015 at 9:41 AM, Steff Gladstone 
  steff.gladst...@gmail.com
  wrote:
 
   The ENQ has to be transparent to the JCL.   Could I dynamically
 allocate
  a
   dataset with DISP=(OLD,PASS)?  As I recall the dynamic allocation
   does
  not
   permit the use of PASS.
  
 
  ​Hum, I'm going to go way out on a limb and start sawing. grin/
 
  I wonder if it would be possible to do a directed ENQ of a SYSDSN to
  the initiator TCB and then modify the SWA  to generate the internal
  information for a DD and place that as if it had been in a DD in the
  JCL. I am likely not saying that very well. But I'm thinking that
  products like
  CA-11 do this sort of thing for restart (in order to change GDG
  generation numbers). If this were possible, then perhaps the initiator
  would do the DEQ at end of job.
 
  Perhaps Chris, or another ISV person, would know.​
 
 
 
  
  
   On Mon, Apr 20, 2015 at 5:30 PM, Blaicher, Christopher Y. 
   cblaic...@syncsort.com wrote:
  
I guess you could do that, assign the initiator TCB to the ENQ,
but
  what
happens if the job abends before the step you do the DEQ in?
   
I think this will work - If the purpose is to prevent two similar
processes, then why not use a common data set and allocate it as
DISP=(OLD,PASS).  That way the ENQ on the data set will last for
the duration of the job, and if it dies early the ENQ
automatically goes
   away.
   
Chris Blaicher
  
  --
  If you sent twitter messages while exploring, are you on a textpedition?
 
  He's about as useful as a wax frying pan.
 
  10 to the 12th power microphones = 1 Megaphone
 
  Maranatha! 
  John McKown
 
  --
  For IBM-MAIN subscribe / signoff / archive access instructions, send
  email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 

 --
 For IBM-MAIN subscribe / signoff / archive access instructions, send email
 to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

 This e-mail transmission contains information that is confidential and may
 be privileged.   It is intended only for the addressee(s) named above. If
 you receive this e-mail in error, please do not read, copy or disseminate
 it in any manner. If you are not the intended recipient, any disclosure,
 copying, distribution or use of the contents of this information is
 prohibited. Please reply to the message immediately by informing the sender
 that the message was misdirected. After replying, please erase it from your
 computer system. Your assistance in correcting this error is appreciated.


 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN