Discussion:
Help will calling a Logging Function
(too old to reply)
Lizette Koehler
2017-05-15 01:39:55 UTC
Permalink
Raw Message
I am writing a process that will call a Logging function.

Basic information is to be passed to the LOGGIT routing. I would like to make it external so I can use it in other functions. I know I can make it work it if part of the main REXX routine.

LOGGIT will capture date/time userid and fuction performing (EDIT, VIEW, SUBMIT, etc...)

I thought it should work with

/* REXX */
Main body of REXX routine
Where appropriate

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Lizette Koehler
2017-05-15 01:43:08 UTC
Permalink
Raw Message
Sorry, darn keyboard SEND to soon

/* REXX */
Main body of REXX routine
Where appropriate CALL LOGGIT IDENT,FIELDS
More REXX
CALL LOGGIT IDENT,FIELDS
End REXX

My understanding was that the External routine could take parms IDENT (Who called it) and Fields(What I want it to log)

The the LOGGIT Routine will know what to do about the request.

Will this work? Or is it easier to just keep multiple copies around in the individual REXX's that might want to log info.

I was just hoping to have one copy of LOGGIT as a PDS member where my REXX components will call it. That way I only have to remember one place to update LOGGIT



Thanks

Lizette


-----Original Message-----
>From: Lizette Koehler <***@mindspring.com>
>Sent: May 14, 2017 6:40 PM
>To: TSO Newsgroup <TSO-***@VM.MARIST.EDU>
>Subject: Help will calling a Logging Function
>
>I am writing a process that will call a Logging function.
>
>Basic information is to be passed to the LOGGIT routing. I would like to make it external so I can use it in other functions. I know I can make it work it if part of the main REXX routine.
>
>LOGGIT will capture date/time userid and fuction performing (EDIT, VIEW, SUBMIT, etc...)
>
>I thought it should work with
>
>/* REXX */
> Main body of REXX routine
> Where appropriate

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Ward Able, Grant
2017-05-15 07:39:40 UTC
Permalink
Raw Message
That should work. I often use something like this:

data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
call RBDEFVAL data

Regards – Grant

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Lizette Koehler
Sent: Monday, May 15, 2017 2:44 AM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Help will calling a Logging Function

Sorry, darn keyboard SEND to soon

/* REXX */
Main body of REXX routine
Where appropriate CALL LOGGIT IDENT,FIELDS
More REXX
CALL LOGGIT IDENT,FIELDS
End REXX

My understanding was that the External routine could take parms IDENT (Who called it) and Fields(What I want it to log)

The the LOGGIT Routine will know what to do about the request.

Will this work? Or is it easier to just keep multiple copies around in the individual REXX's that might want to log info.

I was just hoping to have one copy of LOGGIT as a PDS member where my REXX components will call it. That way I only have to remember one place to update LOGGIT



Thanks

Lizette


-----Original Message-----
>From: Lizette Koehler <***@mindspring.com>
>Sent: May 14, 2017 6:40 PM
>To: TSO Newsgroup <TSO-***@VM.MARIST.EDU>
>Subject: Help will calling a Logging Function
>
>I am writing a process that will call a Logging function.
>
>Basic information is to be passed to the LOGGIT routing. I would like to make it external so I can use it in other functions. I know I can make it work it if part of the main REXX routine.
>
>LOGGIT will capture date/time userid and fuction performing (EDIT, VIEW, SUBMIT, etc...)
>
>I thought it should work with
>
>/* REXX */
> Main body of REXX routine
> Where appropriate

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
DTCC DISCLAIMER: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify us immediately and delete the email and any attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.
Paul Gilmartin
2017-05-15 15:56:31 UTC
Permalink
Raw Message
On 2017-05-15, at 01:40, Ward Able, Grant wrote:

> That should work. I often use something like this:
>
> data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
> call RBDEFVAL data
>
Can't that be written more easily and legibly as:

data = s qm 'QNAME' a 'QN' qn text

???

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Ward Able, Grant
2017-05-16 09:13:43 UTC
Permalink
Raw Message
Probably, Gil, but that's the way I learned to code concatenated strings..... tomAYto, tomAHto ?



Regards - Grant.
Telephone Internal: 201496 (London)
Telephone External: +44 (0)207 650 1496

EAM - Enterprise Application Middleware

In theory, there's no difference between theory and practice. In practice, there is.

If you don't have time to do it right, when will you have the time to do it over? - John Wooden

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
Sent: 15 May 2017 16:57
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Help will calling a Logging Function

On 2017-05-15, at 01:40, Ward Able, Grant wrote:

> That should work. I often use something like this:
>
> data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
> call RBDEFVAL data
>
Can't that be written more easily and legibly as:

data = s qm 'QNAME' a 'QN' qn text

???

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
DTCC DISCLAIMER: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify us immediately and delete the email and any attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Hobart Spitz
2017-05-16 12:49:43 UTC
Permalink
Raw Message
Grant; Unlearn it. Everyone else has to look twice to see if they have
missed something.

On Tue, May 16, 2017 at 5:14 AM, Ward Able, Grant <***@dtcc.com>
wrote:

> Probably, Gil, but that's the way I learned to code concatenated
> strings..... tomAYto, tomAHto ?
>
>
>
> Regards - Grant.
> Telephone Internal: 201496 (London)
> Telephone External: +44 (0)207 650 1496
>
> EAM - Enterprise Application Middleware
>
> In theory, there's no difference between theory and practice. In practice,
> there is.
>
> If you don't have time to do it right, when will you have the time to do
> it over? - John Wooden
>
> -----Original Message-----
> From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf
> Of Paul Gilmartin
> Sent: 15 May 2017 16:57
> To: TSO-***@VM.MARIST.EDU
> Subject: Re: [TSO-REXX] Help will calling a Logging Function
>
> On 2017-05-15, at 01:40, Ward Able, Grant wrote:
>
> > That should work. I often use something like this:
> >
> > data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
> > call RBDEFVAL data
> >
> Can't that be written more easily and legibly as:
>
> data = s qm 'QNAME' a 'QN' qn text
>
> ???
>
> -- gil
>
> ----------------------------------------------------------------------
> For TSO-REXX subscribe / signoff / archive access instructions, send email
> to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
> DTCC DISCLAIMER: This email and any files transmitted with it are
> confidential and intended solely for the use of the individual or entity to
> whom they are addressed. If you have received this email in error, please
> notify us immediately and delete the email and any attachments from your
> system. The recipient should check this email and any attachments for the
> presence of viruses. The company accepts no liability for any damage
> caused by any virus transmitted by this email.
>
> ----------------------------------------------------------------------
> For TSO-REXX subscribe / signoff / archive access instructions,
> send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
>



--
OREXXMan

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-05-16 13:28:37 UTC
Permalink
Raw Message
On 2017-05-16, at 06:50, Hobart Spitz wrote:

> Grant; Unlearn it. Everyone else has to look twice to see if they have
> missed something.
>
A highly teachable moment. I once had a manager who insisted on the
long form. But I'll confess that I did such as:
'prefix'stem'suffix'
... where he preferred:
'prefix' || stem || 'suffix'

But, at least, space out the concatenators so the quoted blanks show up more clearly:

data = s || ' ' || qm || ' ' || 'QNAME' || ' ' || a || ' ' || 'QN' || ' ' || qn || ' ' || text


> On Tue, May 16, 2017 at 5:14 AM, Ward Able, Grant wrote:
>
>> Probably, Gil, but that's the way I learned to code concatenated
>> strings..... tomAYto, tomAHto ?
>>>
>>> data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
>>> call RBDEFVAL data
>>>
>> Can't that be written more easily and legibly as:
>>
>> data = s qm 'QNAME' a 'QN' qn text

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Andreas Fischer
2017-05-17 05:14:33 UTC
Permalink
Raw Message
but why would you concatenate the arguments of a function call at all? it
will just complicate things if you have the space or any other separator
within your variable values, and i don't see any benefit.

i use to call fxname('A', varname1, 'C', ...) and you can easily assign
those values to variables in your function then with the parse arg
instruction.

regards,
andi


TSO REXX Discussion List <TSO-***@VM.MARIST.EDU> schrieb am 16.05.2017
15:29:25:

> Von: Paul Gilmartin <***@AIM.COM>
> An: TSO-***@VM.MARIST.EDU
> Datum: 16.05.2017 15:30
> Betreff: Re: [TSO-REXX] Help will calling a Logging Function
> Gesendet von: TSO REXX Discussion List <TSO-***@VM.MARIST.EDU>
>
> On 2017-05-16, at 06:50, Hobart Spitz wrote:
>
> > Grant; Unlearn it. Everyone else has to look twice to see if they
have
> > missed something.
> >
> A highly teachable moment. I once had a manager who insisted on the
> long form. But I'll confess that I did such as:
> 'prefix'stem'suffix'
> ... where he preferred:
> 'prefix' || stem || 'suffix'
>
> But, at least, space out the concatenators so the quoted blanks show
> up more clearly:
>
> data = s || ' ' || qm || ' ' || 'QNAME' || ' ' || a || ' ' ||
> 'QN' || ' ' || qn || ' ' || text
>
>
> > On Tue, May 16, 2017 at 5:14 AM, Ward Able, Grant wrote:
> >
> >> Probably, Gil, but that's the way I learned to code concatenated
> >> strings..... tomAYto, tomAHto ?
> >>>
> >>> data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||'
'||text
> >>> call RBDEFVAL data
> >>>
> >> Can't that be written more easily and legibly as:
> >>
> >> data = s qm 'QNAME' a 'QN' qn text
>
> -- gil
>
> ----------------------------------------------------------------------
> For TSO-REXX subscribe / signoff / archive access instructions,
> send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-05-17 02:06:44 UTC
Permalink
Raw Message
Forget everyone else: When you write a statement like that, ~you~ have to look extra hard to spot possible syntax errors.

However, I'm less inclined than Mr Spitz to tell you how you must code :).

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* In God we trust! All others bring data. -W Edwards Deming */


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Hobart Spitz
Sent: Tuesday, May 16, 2017 08:51

Grant; Unlearn it. Everyone else has to look twice to see if they have missed something.

--- On Tue, May 16, 2017 at 5:14 AM, Ward Able, Grant <***@dtcc.com> wrote:
> Probably, Gil, but that's the way I learned to code concatenated strings..... tomAYto, tomAHto ?
>
> -----Original Message-----
> From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
> Sent: 15 May 2017 16:57

> Can't that be written more easily and legibly as:
>
> data = s qm 'QNAME' a 'QN' qn text
>
> --- On 2017-05-15, at 01:40, Ward Able, Grant wrote:
> > That should work. I often use something like this:
> >
> > data = s||' '||qm||' '||'QNAME'||' '||a||' '||'QN'||' '||qn||' '||text
> > call RBDEFVAL data

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-05-15 16:53:53 UTC
Permalink
Raw Message
On 2017-05-14, at 19:43, Lizette Koehler wrote:
>
> I was just hoping to have one copy of LOGGIT as a PDS member where my REXX components will call it. That way I only have to remember one place to update LOGGIT
>
Rexx is sorely deficient in data sharing among external subroutines.

I have kept some of my common subroutines in a PDS and built
Rexx executables dynamically in temp DSNs with DD concatenation
and REPRO as an alternative.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-05-17 02:19:10 UTC
Permalink
Raw Message
Lizette, it happens I just wrote an external logging routine for a REXX I placed in a common library. I wanted to see who's using it and who might be having trouble with it, so each invocation adds a record to a dataset I can view occasionally. I can turn it off once I get bored, my ego having finally been gratified by seeing how useful it is.

I can share my code if you want, but as this is a programmer's forum I assume you'd rather roll your own. (What fun is it to just ~use~ prepared code?) However here are some issues I had to deal with:

1) I tried hard to make the routine end silently and quickly if anything went wrong - not to issue a message, but just return to the caller without the user being aware that the logging function failed. The log isn't for the user's convenience, after all, but for mine, so if I made a mistake I don't want the user to suffer for it. So if the log file isn't there, or the user doesn't have permission to write to it, or anything else, the routine just returns and says nothing to the caller about it...unless the calling program includes an argument that says otherwise.

2) The log file has to be allocated MOD, of course, and the user needs UPDATE access to it. That's not a problem for me because I'm a security admin and I can give everyone UPDATE access to that dataset.

3) ...There was another issue but now I've forgotten it. Oh, right: I had the external logging routine assume which dataset to write to by default, but included code to interpret an optional argument from the caller to write to a different DSN if desired.

I did something like this decades ago when I used to write commands that fellow programmers used, but in that case I used the SEND command instead of putting the log entry in a dataset. When I started getting too many SEND messages for a particular REXX, I knew it was time to turn it off, or possibly to tune that command so it would do the SEND only if there was the user encountered an error.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* In God we trust! All others bring data. -W Edwards Deming */


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Lizette Koehler
Sent: Sunday, May 14, 2017 21:44

I am writing a process that will call a Logging function.
>
Basic information is to be passed to the LOGGIT routing. I would like to make it external so I can use it in other functions. I know I can make it work it if part of the main REXX routine.

LOGGIT will capture date/time userid and fuction performing (EDIT, VIEW, SUBMIT, etc...)

I thought it should work with

/* REXX */
Main body of REXX routine
Where appropriate CALL LOGGIT IDENT,FIELDS
More REXX
CALL LOGGIT IDENT,FIELDS
End REXX

My understanding was that the External routine could take parms IDENT (Who called it) and Fields(What I want it to log)

The the LOGGIT Routine will know what to do about the request.

Will this work? Or is it easier to just keep multiple copies around in the individual REXX's that might want to log info.

I was just hoping to have one copy of LOGGIT as a PDS member where my REXX components will call it. That way I only have to remember one place to update LOGGIT

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Lizette Koehler
2017-05-18 00:05:06 UTC
Permalink
Raw Message
Bob -

That is exactly what I am going to be doing in this process.

Simple logging - What called LogIT and date/time USERID and Function - Update/Del/etc...

Lizette


-----Original Message-----
>From: Bob Bridges <***@GMAIL.COM>
>Sent: May 17, 2017 4:15 PM
>To: TSO-***@VM.MARIST.EDU
>Subject: Re: [TSO-REXX] Help will calling a Logging Function
>
>I dunno what Lizette's particular requirements are, but in my logging calls,
>at least, the calling program supplies the entire message string except for
>the values the routine already knows: always date and time, optionally
>information of origin such as the LPAR, the caller's ID, the name of the
>calling routine. This allows the routine to be used by any number of
>calling programs; each of them has different messages and different
>arguments, but the logging routine doesn't have to know about them:
>
> Call logger 'This is a log message.'
> Call logger 'New entry created for application' app 'with' narc
>'variants.'
> Call logger s qm 'QNAME' a 'QN' qn text
>
>---
>Bob Bridges
> ***@gmail.com, cell 336 382-7313
> ***@InfoSecInc.com
>
>/* 'Tis easier to suppress the first desire than to satisfy all that follow
>it. -Poor Richard */
>
>
>-----Original Message-----
>From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of
>Andreas Fischer
>Sent: Wednesday, May 17, 2017 01:15
>
>but why would you concatenate the arguments of a function call at all? it
>will just complicate things if you have the space or any other separator
>within your variable values, and i don't see any benefit.
>
>i use to call fxname('A', varname1, 'C', ...) and you can easily assign
>those values to variables in your function then with the parse arg
>instruction.
>

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Hamilton, Robert
2017-05-18 17:18:30 UTC
Permalink
Raw Message
I agree, Rob, this is spectacular.

I have a REXX app to handle some web pages in OMVS for disaster-recovery status. It updates one or two small files, then (ahem) uses make to build the webpages that might have changed with cp. I don't have to worry about which web pages changed, since make handles the dependencies for me. The ALLOC/FREE were time consuming, so I ended up with syscalls to make all the data changes. The nice thing there is that I could also use a syscall to handle locking the file being updated which, again was a better choice than ALLOC with OLD.

I really like your method of just using echo, tho; you get much better throughput, I'm sure, which is better for handling the higher volume. Excellent!!!

R;


Rob Hamilton
Sr. System Engineer
Chemical Abstracts Service



>-----Original Message-----
>From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On
>Behalf Of Lizette Koehler
>Sent: Thursday, May 18, 2017 1:00 PM
>To: TSO-***@VM.MARIST.EDU
>Subject: Re: Help will calling a Logging Function
>
>AWESOME!
>
>There are some things I need to think about now. You have provided a new
>way for me to look at logging in REXX.
>
>Thank you very much
>
>Lizette
>
>
>
>-----Original Message-----
>>From: Rob Zenuk <***@AOL.COM>
>>Sent: May 18, 2017 9:52 AM
>>To: TSO-***@VM.MARIST.EDU
>>Subject: Re: [TSO-REXX] Help will calling a Logging Function
>>
>>Been a while since I have posted...
>>
>>I wrote a logging routine for a high volume REXX monitor that runs across
>several LPAR's across several Sysplexes....


Confidentiality Notice: This electronic message transmission, including any attachment(s), may contain confidential, proprietary, or privileged information from Chemical Abstracts Service ("CAS"), a division of the American Chemical Society ("ACS"). If you have received this transmission in error, be advised that any disclosure, copying, distribution, or use of the contents of this information is strictly prohibited. Please destroy all copies of the message and contact the sender immediately by either replying to this message or calling 614-447-3600.
Paul Gilmartin
2017-05-18 18:27:09 UTC
Permalink
Raw Message
On 2017-05-18, at 11:19, Hamilton, Robert wrote:

> I agree, Rob, this is spectacular.
>
> I have a REXX app to handle some web pages in OMVS for disaster-recovery status. It updates one or two small files, then (ahem) uses make to build the webpages that might have changed with cp. I don't have to worry about which web pages changed, since make handles the dependencies for me. The ALLOC/FREE were time consuming, so I ended up with syscalls to make all the data changes. The nice thing there is that I could also use a syscall to handle locking the file being updated which, again was a better choice than ALLOC with OLD.
>
Sometimes the need for locking can be removed by updating to a temporary
filename and at the end renaming, which is atomic and preemptive.

Coordinated updates to multiple files might be done by writing updated
files to a new directory while creating hard links to files not modified.
At the end, replace a symbolic link to the root directory for an
almost-atomic replacement.

> I really like your method of just using echo, tho; you get much better throughput, I'm sure, which is better for handling the higher volume. Excellent!!!
>
And SYSCALL open O_APPEND might do even better, by eliminating the
BPXWUNIX overhead.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Jeremy Nicoll
2017-05-18 20:24:45 UTC
Permalink
Raw Message
On Thu, 18 May 2017, at 19:27, Paul Gilmartin wrote:

> Sometimes the need for locking can be removed by updating to a temporary
> filename and at the end renaming, which is atomic and preemptive.

ISTR that, long ago, I used to use edit macros to update files that
might be in contention;
the driving exec would try to call ispf edit something like 20 or 30
times in a loop with
random length sleeps each time around (so if several people/jobs were
waiting for access
to the same file one or other would be likely to get it fairly soon).

Our systems were set up so that when a file was in contention some bit
of vendor(?) GRS
enqueue management software interrupted the full-screen tso session of
whoever held
the dataset telling them they were causing a problem. Of course that
didn't help if they
weren't looking at their screen...

If ispf edit actually managed to open the file, the write would be fine,
and I'd pass back a
flag from the macro via a VPUTted/VGETted variable saying "yes, I
definitely did it". The
execs rarely had to retry more than once or twice, but once/twice was
fairly common.

--
Jeremy Nicoll - my opinions are my own.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Bob Bridges
2017-05-18 22:08:03 UTC
Permalink
Raw Message
Someday I'll learn that message queueing has been available all these years and I didn't have to worry about contention and other such issues. Many of the issues discussed in this thread would simply disappear if I were to have, and use, MQ habitually. Well, some of them.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Ye knowe ek that in forme of speche is chaunge
Withinne a thousand yere, and wordes tho
That hadden pris, now wonder nyce and straunge
Us thinketh hem, and yit they spake hem so.
-Geoffrey Chaucer, Troilus and Criseyde, Book 2, 22-25 */

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Jeremy Nicoll
Sent: Thursday, May 18, 2017 16:26

ISTR that, long ago, I used to use edit macros to update files that might be in contention; the driving exec would try to call ispf edit something like 20 or 30 times in a loop with random length sleeps each time around (so if several people/jobs were waiting for access to the same file one or other would be likely to get it fairly soon).

Our systems were set up so that when a file was in contention some bit of vendor(?) GRS enqueue management software interrupted the full-screen tso session of whoever held the dataset telling them they were causing a problem. Of course that didn't help if they weren't looking at their screen...

If ispf edit actually managed to open the file, the write would be fine, and I'd pass back a flag from the macro via a VPUTted/VGETted variable saying "yes, I
definitely did it". The
execs rarely had to retry more than once or twice, but once/twice was fairly common.


--- On Thu, 18 May 2017, at 19:27, Paul Gilmartin wrote:
> Sometimes the need for locking can be removed by updating to a
> temporary filename and at the end renaming, which is atomic and preemptive.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Thom Stone
2017-05-18 23:11:12 UTC
Permalink
Raw Message
After many years of trying to write logging code to document rexx failures in NetView, I found an addon called MA1D that allowed you to send messages to MQ which then allowed your problem system to grab them and cut you a problem ticket. Since it has been four years since I retired and MA1D was deprecated before I left work I have nothing to offer as a replacement. There were several MA.. addons, perhaps there is one for TSO that might be of help. GOOGLE is your friend.


-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Bob Bridges
Sent: Thursday, May 18, 2017 5:08 PM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Help will calling a Logging Function

Someday I'll learn that message queueing has been available all these years and I didn't have to worry about contention and other such issues. Many of the issues discussed in this thread would simply disappear if I were to have, and use, MQ habitually. Well, some of them.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Ye knowe ek that in forme of speche is chaunge Withinne a thousand yere, and wordes tho That hadden pris, now wonder nyce and straunge Us thinketh hem, and yit they spake hem so.
-Geoffrey Chaucer, Troilus and Criseyde, Book 2, 22-25 */

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Jeremy Nicoll
Sent: Thursday, May 18, 2017 16:26

ISTR that, long ago, I used to use edit macros to update files that might be in contention; the driving exec would try to call ispf edit something like 20 or 30 times in a loop with random length sleeps each time around (so if several people/jobs were waiting for access to the same file one or other would be likely to get it fairly soon).

Our systems were set up so that when a file was in contention some bit of vendor(?) GRS enqueue management software interrupted the full-screen tso session of whoever held the dataset telling them they were causing a problem. Of course that didn't help if they weren't looking at their screen...

If ispf edit actually managed to open the file, the write would be fine, and I'd pass back a flag from the macro via a VPUTted/VGETted variable saying "yes, I
definitely did it". The
execs rarely had to retry more than once or twice, but once/twice was fairly common.


--- On Thu, 18 May 2017, at 19:27, Paul Gilmartin wrote:
> Sometimes the need for locking can be removed by updating to a
> temporary filename and at the end renaming, which is atomic and preemptive.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Thom Stone
2017-05-19 02:54:48 UTC
Permalink
Raw Message
Here is a URL for MA95:

http://www-01.ibm.com/support/docview.wss?uid=swg24021549

if interested in MQ logging.


On May 18, 2017, at 18:08, Bob Bridges <***@GMAIL.COM> wrote:

Someday I'll learn that message queueing has been available all these years and I didn't have to worry about contention and other such issues. Many of the issues discussed in this thread would simply disappear if I were to have, and use, MQ habitually. Well, some of them.

---
Bob Bridges
***@gmail.com, cell 336 382-7313
***@InfoSecInc.com

/* Ye knowe ek that in forme of speche is chaunge
Withinne a thousand yere, and wordes tho
That hadden pris, now wonder nyce and straunge
Us thinketh hem, and yit they spake hem so.
-Geoffrey Chaucer, Troilus and Criseyde, Book 2, 22-25 */

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Jeremy Nicoll
Sent: Thursday, May 18, 2017 16:26

ISTR that, long ago, I used to use edit macros to update files that might be in contention; the driving exec would try to call ispf edit something like 20 or 30 times in a loop with random length sleeps each time around (so if several people/jobs were waiting for access to the same file one or other would be likely to get it fairly soon).

Our systems were set up so that when a file was in contention some bit of vendor(?) GRS enqueue management software interrupted the full-screen tso session of whoever held the dataset telling them they were causing a problem. Of course that didn't help if they weren't looking at their screen...

If ispf edit actually managed to open the file, the write would be fine, and I'd pass back a flag from the macro via a VPUTted/VGETted variable saying "yes, I
definitely did it". The
execs rarely had to retry more than once or twice, but once/twice was fairly common.


--- On Thu, 18 May 2017, at 19:27, Paul Gilmartin wrote:
> Sometimes the need for locking can be removed by updating to a
> temporary filename and at the end renaming, which is atomic and preemptive.

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Loading...