Martin Kline provided a response that would probably work.

That being said, and having been there, done that, I wouldn't
go there.  Other folks have other views.

These days, that subsystem code has a support status of:

"If it breaks, you get to keep both pieces."

Looking back across four decades of systems programming,
it's pretty amazing what we did.  And some of it was actually
a good idea <grin>.  MIPS and gigs can paper over any coding
sin.  Anyway, it was free advice, and guaranteed to be
worth every penny.

Lance

----- Original Message ----- From: "McKown, John" <john.mck...@healthmarkets.com>
Newsgroups: bit.listserv.ibm-main
Sent: Monday, February 01, 2010 12:24 PM
Subject: Re: Friday thought - a couple of SUBSYS= subsystems for discussion.


Thanks for all that information. If TEE was so difficult to implement, I shudder to think about my UNIX SUBSYS= functionality! I wonder about doing something "hinkey" in OPEN. OPEN can open multiple DCBs in a single SVC. So, I wonder if it does it them sequentially. If so, I wonder if it would be possible to dynamically add my DCBs onto the end of the list. Probably not something that would be long term viable.

--
John McKown
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone * (817)-961-6183 cell
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM



-----Original Message-----
From: IBM Mainframe Discussion List
[mailto:ibm-m...@bama.ua.edu] On Behalf Of kopplin
Sent: Monday, February 01, 2010 12:36 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Friday thought - a couple of SUBSYS= subsystems
for discussion.

----- Original Message ----- From: "Martin Kline" <martin.kl...@yrcw.com>
Newsgroups: bit.listserv.ibm-main
Sent: Monday, February 01, 2010 9:09 AM
Subject: Re: Friday thought - a couple of SUBSYS= subsystems
for discussion.


> >I think we could use the GPSAM routines from the CBT tape
to create the
>>TEE function.
>
> Both versions of this (CBT files 290 and 648) appear to
have been written
> in
> 1982.

/snip/

I wrote a subsystem to do this TEE function about 25 years
ago.  It turned
out
to be sorta non-trivial.  It seemed pretty obvious that the
thing to do was
to
Open the Teed files from within subsystem Open.  And the
subsystem Open is
running with the SYSZTION ENQ held, so one S138 later, the fun began.

Since dropping and reaquiring the ENQ didn't seem a good
plan, the logic was
changed to do the (possible) dynamic allocation and Open when
the first
record
was written by the application.  More fun accrued.

Seems that some applications didn't necessarily write any
data on every run.
So, trying to close a file that wasn't opened led to more interesting
results.

Additional fun arrived when an application wrote one record
using the COBOL
of the day, which used Put Locate, so, again, no data had
arrived when the
subsystem close code was driven.

And those applications that were casual about closing files
meant that MVS
Termination was issuing Close, and the order of the DEB chain
meant that
DCBs
were being closed in other than the expected order.  An interesting
variation
on that is when, after an application abend occurs, the close
routine is
driven.
Logic was added to see if the TCB was abending.  If it was,
and the DCB
indicated printer control characters, a message was generated
indicating
that
the report was terminated by an xxx abend.  I thought this was really
clever.
In a quarter century, nobody else has mentioned it.

All that being said, it was popular (in the QWEST shop), and
is still in
common use.  But...

Somebody tried it with IMS GSAM (some kinda layer over BSAM)
and it got a
S0C4
I wasn't having any luck figuring out.  Fortunately the user
wasn't overly
concerned so GSAM became a restriction.

And 2 or 3 years ago it was reported to blow up when somebody
tried it in a
multi-tasking environment.  Applications weren't doing
multi-tasking back in
the day, so another restriction.

SVC screening was used to resolve the issues around Close for
empty files,
and
SVC screening collided with some Y2K software back in the
day.  Curiously,
faced with a choice of Y2K testing software, or this
subsystem, they went
with the subsystem on the production system.  Didn't see that
one coming.

There were only two occasions where MVS upgrades forced
changes.  One was
when
the Convertor changed from 24 bit to 31 bit, the other was
when they changed
PUT to operate correctly in 31 bit mode (that's Put Locate again...)

There were over 2,500 uses of the subsystem last Thursday, so
it's still
popular.
The assembly date for the load module is still 2/20/1997.

If someone asked for equivalent function these days, I would
give them a
sample
of SPAWN() and pipes.  If they aren't willing to try that, it
ain't worth
writing
a subsystem. (the ole make 'em prove they need it concept.)

I got a metric shipload of bonus money for writing this back
when.  These
days
I wouldn't even try to get management approval.

How things have changed.

Lance


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to