Re: Re : Extracting STDOUT data from USS

2010-01-31 Thread Shmuel Metz (Seymour J.)
In listserv%201001290758497806.0...@bama.ua.edu, on 01/29/2010
   at 07:58 AM, Paul Gilmartin paulgboul...@aim.com said:

Why re-invent the wheel?

Why do you assume that they had a wheel when they wrote the code for the
first version of CICS? How did you do an ATTACH in early releases of
DOS/360? Why did HASP use the same sort of dispatching of pseudotasks
within a singl OS/360 task?

One of the reasons that IMS is structured differently from CICS is that it
was written for a more functional environment.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: Re : Extracting STDOUT data from USS

2010-01-31 Thread Shmuel Metz (Seymour J.)
In listserv%201001280858249055.0...@bama.ua.edu, on 01/28/2010
   at 08:58 AM, Paul Gilmartin paulgboul...@aim.com said:

My naive understanding of the OS/360 multiprocessing

ITYM multiprogramming.

paradigm is that when one unit of work WAITs, another
is dispatched.  How does CICS manage to subvert this?

It doesn't, any more than JES2 does. What you're missing is that CICS
dispatches multiple transactions within a single z/OS unit of work, just
like the JES2 main task does.

What happens when a CICS transaction must do something
like:
Invalid PIN number; please re-enter

The transaction uses CICS services, and CICS (not z/OS) suspends the
transaction until the input is available.

Well, there's nonblocking I/O.  But what do you do if the
pipe isn't ready?

You let CICS handle the I/O in a separate task and the wait doesn't cause
any problems.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: Re : Extracting STDOUT data from USS

2010-01-31 Thread Shmuel Metz (Seymour J.)
In 05c701ca9e76$66eb0bd0$34c123...@us, on 01/26/2010
   at 04:57 AM, Jim Thomas j...@thethomasresidence.us said:

I'm looking for some direction and advice on dynamically extracting
STDOUT data from USS

Assuming that you mean Unix and not USS, STDOUT is just another file
handle. The same considerations apply as for any other file used by a z/OS
Unix application. Have you considered assigning STDOUT to a pipe and doing
whatever you want at the other end?

that I can feed into a CICS sub-system.

Using what mechanism to get into CICS? You need to take into account how
your installation is configured.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: Re : Extracting STDOUT data from USS

2010-01-31 Thread Shmuel Metz (Seymour J.)
In listserv%201001271136391298.0...@bama.ua.edu, on 01/27/2010
   at 11:36 AM, Paul Gilmartin paulgboul...@aim.com said:

Gee, you do I/O, you wait 

Who R U? In CICS you're supposed to use CICS services for I/O, not to do
your own in the main CICS task. One of those services is to run code in a
separate subtask so that you are allowed to do things directly that would
otherwise be prohibited.

  I suppose CICS might bypass access methods
and do STARTIO directly

Suppose what you want, but CICS was handling this before there was a
STARTIO. Why not instead suppose that the authors of CICS have heard of
ATTACH et al? What has changed is that there is now a mechanism for
programmers who want to do a wait to do it in a subtask.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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


Re: Re : Extracting STDOUT data from USS

2010-01-31 Thread Joel C. Ewing
On 01/29/2010 07:59 AM, Paul Gilmartin wrote:
 On Thu, 28 Jan 2010 10:33:49 -0500, Thompson, Steve wrote:

 So when you did this call to CICS, it would recognize you would need to
 wait (whether you actually needed to or now, you will now) and then it
 would go dispatch another transaction that was ready to run.

 In effect, CICS was making virtual TCBs run using one real TCB, with
 each virtual TCB being a transaction (pseudo conversational or true
 conversational).

 Why re-invent the wheel?  But this feels more like newly inventing
 the flat tire.

The obvious (?) answer here is that because of the additional
constraints placed on CICS application transaction code, CICS was able
to do its own internal CPU dispatching much more efficiently than using
separate TCBs for all transactions and letting MVS manage everything.
This was certainly true when CICS was created.  Perhaps even more
critical, having CICS manage things made it possible to share update
access to VSAM datasets and manage other transaction resources in ways
that would have been impractical or have involved more overhead with
multiple system TCBs.

30+ years ago we had exactly the same issues with DOS/VS and its support
for multitasking.  In pre-CICS days, to support our own on-line system
on limited hardware resources my predecessors had to develop what we
called mini-tasking - a set of interfaces and macros to support
multiple interactive transactions as a single system task in a single
DOS  partition -- a much simplified version of what CICS does.  Those
applications eventually evolved into CICS transactional applications,
which thankfully proved much easier to migrate to MVS.

 
 I suppose there's a transaction manager that needs o be aware when
 a transaction waits.  Virtual seems to be a key word.  It's a
 pity there wasn't an implementation closer to the nucleus, so
 applications could use a fuller repertoire of conventional MVS
 multitasking.  A hierarchy of virtual environments?  SVC screening
 of WAIT by the task manager?
 
 -- gil



-- 
Joel C. Ewing, Fort Smith, ARjremoveccapsew...@acm.org

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


Re: Extracting STDOUT data from USS

2010-01-31 Thread Anne Lynn Wheeler
The following message is a courtesy copy of an article
that has been posted to bit.listserv.ibm-main,alt.folklore.computers as well.


shmuel+ibm-m...@patriot.net (Shmuel Metz  , Seymour J.) writes:
 Who R U? In CICS you're supposed to use CICS services for I/O, not to do
 your own in the main CICS task. One of those services is to run code in a
 separate subtask so that you are allowed to do things directly that would
 otherwise be prohibited.

one of the examples of not appearing to be multithreaded to the
operating system ... was that CICS didn't utilize multiprocessors until
less than ten years ago ... it appeared like one large task to the
operating system ... and CICS provided all the subtask  thread
management internally. Since CICS only appeared like one large
application to the operating system ... there was no way of having
concurrent pieces executing simultaneously on different processors. For
a long time, to utilize additional processors required having multiple
separate CICS regions executing concurrently (I was in datacenter less
than decade ago with banner mentioning having over 120 CICS regions).

there was lots  lots in CICS attempting to isolate itself as much as
possible from the high overhead of the underlying operating system
... using the operating system for bare scaffold to operate the machine
... but attempting to do as much of everything else itself.

I was undergraduate at univ. in the 60s and responsible for os/360
support. The univ. library got an ONR grant for online catalog ... part
of the funds was used to purchase a 2321 datacell. The effort was also
selected to be one of the betatest sites for the original/first CICS
product release ... and I got tasked to also do CICS support (I didn't
even get sent to any CICS classes ... just had to figure things out from
code and dumps).

CICS would do all its file opens at start up and keep them open for the
duration of CICS execution. One of the first bugs I had to shoot was
CICS file open bug that resulting in abend ... problem turned out to be
that the BDAM file options used by the original (customer) CICS
implementation ... was different than the BDAM file options being used
by the library (and there was buried stuff in the code specific to the
particular BDAM options).

... as aside some of the posting problems seem to coincide with news
about SSL DOS attack on CIA  PAYPAL ( others). Some number of usenet
servers are utilized by SSL ... at least for entering userid/password as
part of posting. I haven't seen any specific evidence ... but recent
usenet posting issues seem to coincide with some of the recent reports
of SSL DOS attacks.

these URLs have gone 404 ... but still around on wayback machine

The Evolution of CICS: CICS and Multi-region Operation (1980)
http://web.archive.org/web/20040705000349/http://www.yelavich.com/history/ev198001.htm

The Evolution of CICS: CICS and Multiprocessor Exploitation (2004)
http://web.archive.org/web/20041023110006/http://www.yelavich.com/history/ev200402.htm

from above:

CICS chose to provide for a multi-tasking environment under a single
Task Control Block (TCB) using its own dispatcher (Task Control Program)
rather than attempt to multi-task concurrent transaction processing
using operating system subtasks. Not only was the overhead of operating
system subtasking considered excessive, but having concurrently
dispatched applications would have required programs to be reentrant and
serialize their use of shared resources. That was felt to be too
complicated at the time.

... snip ...

for a little multiprocessor topic drift ... charlie had invented
compareswap instruction when working on fine-grain multiprocessor
support for cp67 (compareswap chosen because CAS are charlie's
initials). First foreys into POK to get compareswap instruction
included in 370 was rebuffed ... claim being that the POK favorite son
operating system had decided that the TESTSET instruction (from 360
multiprocessor) was more than adequate. The challenge was that in order
to get compareswap included in 370 ... it would be necessary to invent
some non-multiprocessor, non-SMP uses for the instruction. Thus was born
the examples for multithreaded/multitasking operation (whether or not
running in multiprocessor environment).

the principles of operation programming notes for compareswap have
change little since the original version:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/dz9zr003/A.6?DT=20040504121320

compareswap became stable for use by highly multithreaded operation 
(especially scalable DBMS applications) and showed up on wide variety
of platforms (or something with very similar semantics).

One of the early problems for rs/6000 starting to sell into DBMS market
segment ... was not having a compareswap instructions (DBMS were forced
to use unix kernel calls to achieve multithreaded serialization
... putting rs/6000 DBMS operation at significant thruput disadvantage).
Eventually AIX on rs/6000 

Re: Extracting STDOUT data from USS

2010-01-30 Thread Ken Brick

Greg Price wrote:

This CICS smarts for managing virtual tasks and
not really OS waiting until there was absolutely
nothing else to do meant that CICS apps got
great throughput under an OS which had no
such thing as an SRM timer pop.  Under DOS,
(DOS/VS?) once CICS got dispatched it hogged
the CPU until there was no more work left.

Perhaps a CICS old timer can say whether
this is true or not... ?

Cheers,
Greg

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

  
My memory, admittedly 40 years on, is that DOS/VS CICS had it own 
subtasking, the same as the CICS running on MVS/SP had and only issued a 
DOS WAIT when it had no more CICS work to dispatch.


Ken

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


Re: Re : Extracting STDOUT data from USS

2010-01-29 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Binyamin Dissen
 
 On Thu, 28 Jan 2010 08:58:24 -0600 Paul Gilmartin
paulgboul...@aim.com
 wrote:
 
 :My naive understanding of the OS/360 multiprocessing
 :paradigm is that when one unit of work WAITs, another
 :is dispatched.  How does CICS manage to subvert this?
 :Why was it ever allowed?
 
 :What happens when a CICS transaction must do something
 :like:
 
 :Invalid PIN number; please re-enter
 
 :???  Does that spawn a separate transaction?
 
 One issues a CICS wait. With an ECB. That returns control to the CICS
 dispatcher.

Arguably better would be to use the pseudo-conversational programming
technique, whereby the transaction requesting further input then saves
its state and terminates.  The next input from that device initiates a
new instance of that transaction, which then picks up where it left
off.

-jc-

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


Re: Re : Extracting STDOUT data from USS

2010-01-29 Thread Paul Gilmartin
On Thu, 28 Jan 2010 10:33:49 -0500, Thompson, Steve wrote:

So when you did this call to CICS, it would recognize you would need to
wait (whether you actually needed to or now, you will now) and then it
would go dispatch another transaction that was ready to run.

In effect, CICS was making virtual TCBs run using one real TCB, with
each virtual TCB being a transaction (pseudo conversational or true
conversational).

Why re-invent the wheel?  But this feels more like newly inventing
the flat tire.

I suppose there's a transaction manager that needs o be aware when
a transaction waits.  Virtual seems to be a key word.  It's a
pity there wasn't an implementation closer to the nucleus, so
applications could use a fuller repertoire of conventional MVS
multitasking.  A hierarchy of virtual environments?  SVC screening
of WAIT by the task manager?

-- gil

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


Re: Re : Extracting STDOUT data from USS

2010-01-29 Thread Ted MacNEIL
 At least this is working communication - unlike trying to guess what
 is meant by 12:00 PM.

12:00 PM is Noon.
12:00 AM is Midnight.

Days have 24 hours; why not clocks?

Clocks were designed before computers.
It's called tradition, and it's a cultural artifact.

Most of Europe uses the 24-hour clock, all day long.

PS: my BlackBerry is set at 24-hour.

-
Too busy driving to stop for gas!

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


Re: Re : Extracting STDOUT data from USS

2010-01-29 Thread J R
 12:00 PM is Noon. 
 12:00 AM is Midnight.


 

I don't like it.  There's way too much wrong with it.  


 

In any case, midnight is ambiguous.  Each day has two, 
one at day's start, the other at day's end.  


 

 

 
 Date: Fri, 29 Jan 2010 17:28:20 +
 From: eamacn...@yahoo.ca
 Subject: Re: Re : Extracting STDOUT data from USS
 To: IBM-MAIN@bama.ua.edu
 
  At least this is working communication - unlike trying to guess what
  is meant by 12:00 PM.
 
 12:00 PM is Noon.
 12:00 AM is Midnight.
 
 Days have 24 hours; why not clocks?
 
 Clocks were designed before computers.
 It's called tradition, and it's a cultural artifact.
 
 Most of Europe uses the 24-hour clock, all day long.
 
 PS: my BlackBerry is set at 24-hour.
 
 -
 Too busy driving to stop for gas!
 
 --
 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
  
_
Hotmail: Powerful Free email with security by Microsoft.
http://clk.atdmt.com/GBL/go/196390710/direct/01/
--
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


FW: Re : Extracting STDOUT data from USS

2010-01-29 Thread J R
I meant to add that the 24-hour clock can eliminate the abiguity.  
00:00 is the midnight that starts the day, 24:00 the one that ends it.  


 

 
 Date: Fri, 29 Jan 2010 12:43:49 -0500
 From: jayare...@hotmail.com
 Subject: Re: Re : Extracting STDOUT data from USS
 To: IBM-MAIN@bama.ua.edu
 
  12:00 PM is Noon. 
  12:00 AM is Midnight.
 
 
 I don't like it. There's way too much wrong with it. 
 
 
 In any case, midnight is ambiguous. Each day has two, 
 one at day's start, the other at day's end. 
 
 
 
  Date: Fri, 29 Jan 2010 17:28:20 +
  From: eamacn...@yahoo.ca
  Subject: Re: Re : Extracting STDOUT data from USS
  To: IBM-MAIN@bama.ua.edu
  
   At least this is working communication - unlike trying to guess what
   is meant by 12:00 PM.
  
  12:00 PM is Noon.
  12:00 AM is Midnight.
  
  Days have 24 hours; why not clocks?
  
  Clocks were designed before computers.
  It's called tradition, and it's a cultural artifact.
  
  Most of Europe uses the 24-hour clock, all day long.
  
  PS: my BlackBerry is set at 24-hour.
  
  -
  Too busy driving to stop for gas!
  
_
Hotmail: Powerful Free email with security by Microsoft.
http://clk.atdmt.com/GBL/go/196390710/direct/01/
--
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


Re: Re : Extracting STDOUT data from USS

2010-01-29 Thread Paul Gilmartin
On Fri, 29 Jan 2010 17:28:20 +, Ted MacNEIL wrote:

 At least this is working communication - unlike trying to guess what
 is meant by 12:00 PM.

12:00 PM is Noon.
12:00 AM is Midnight.

Tecnically (will Jonh G. confirm?) Noon is 12:00 M.

-- gil

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


Re: Extracting STDOUT data from USS

2010-01-29 Thread Greg Price
Paul Gilmartin wrote:
 Why re-invent the wheel?

I always thought that this came about because
CICS was a DOS app later ported to MVS.

This CICS smarts for managing virtual tasks and
not really OS waiting until there was absolutely
nothing else to do meant that CICS apps got
great throughput under an OS which had no
such thing as an SRM timer pop.  Under DOS,
(DOS/VS?) once CICS got dispatched it hogged
the CPU until there was no more work left.

Perhaps a CICS old timer can say whether
this is true or not... ?

Cheers,
Greg

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Hunkeler Peter (KIUP 4)
Gee, you do I/O, you wait ... [snip]

Sure. I don't know if there is a CICS service to do I/O
to some non-CICS dataset, or if it was simply tolerated.
Actually, a wait only affects other transactions in the
same CICS region as the will have to wait, too. I remember
that in the early releases of OpenEdition / OS/390 UNIX
CICS and IMS both stated that they do not allow UNIX
services from within transactions because teh waits that
could result.

No matter whether waits are allowed or tolerated there is
big differece between a transaction doing an I/O to some 
dataset or UNIX file and a transaction doing an I/O to
some named pipe. In the later case there is a second 
*independent* process involved. And this process might 
run or not when the CICS transacion does its I/O (to the
pipe). Long waits may result and this must be acceptable
to the transaction's purpose.

--
Peter Hunkeler
Credit Suisse

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Don Poitras
In article dc74548a025aff4a85f46926802a9b230412b...@chsa1035.share.beluni.net 
you wrote:
 Gee, you do I/O, you wait ... [snip]

 Sure. I don't know if there is a CICS service to do I/O
 to some non-CICS dataset, or if it was simply tolerated.
 Actually, a wait only affects other transactions in the
 same CICS region as the will have to wait, too. I remember
 that in the early releases of OpenEdition / OS/390 UNIX
 CICS and IMS both stated that they do not allow UNIX
 services from within transactions because teh waits that
 could result.

 No matter whether waits are allowed or tolerated there is
 big differece between a transaction doing an I/O to some 
 dataset or UNIX file and a transaction doing an I/O to
 some named pipe. In the later case there is a second 
 *independent* process involved. And this process might 
 run or not when the CICS transacion does its I/O (to the
 pipe). Long waits may result and this must be acceptable
 to the transaction's purpose.

For a while now (5 years or so), you could code your transaction
using OTE (Open Transaction Environment.) If a wait is needed,
the transaction waits under a special TCB.

http://www.zjournal.com/index.cfm?section=articleaid=767

 --
 Peter Hunkeler
 Credit Suisse

-- 
Don Poitras - SAS Development  -  SAS Institute Inc. - SAS Campus Drive
sas...@sas.com   (919) 531-5637Cary, NC 27513

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Jan MOEYERSONS
On Wed, 27 Jan 2010 13:10:27 +0100, Hunkeler Peter (KIUP 4) 
peter.hunke...@credit-suisse.com wrote:

that CICS transaction must not go into a wait, be it deliberately or
as the result of calling a non-CICS service. I think nowadays there
is a special queue to put transactions that do incur waits.
Quite right. As I said: you're likely not to be alone in your CICS and you 
should 
be polite to the others that are in there with you. 

If you would consider the solution I propose, you will want to go OTE, because 
your task can indeed get into a long wait when trying to read from a named 
pipe.

A named pipe is different from a standard file in that both ends
my become blocked upon a read or write, resp. The reader if there
is insufficient data in the pipe, i.e. the reader is faster reading
from the pipe than the writer can write into it. The writer if the
pipe becomes full, i.e. the writer is faster in writing to the pipe
than the reader can read from it.
Very true and definitely something to take into account.

Cheers,

Jantje.

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Paul Gilmartin
On Thu, 28 Jan 2010 09:02:07 +0100, Hunkeler Peter (KIUP 4) wrote:

Gee, you do I/O, you wait ... [snip]

Sure. I don't know if there is a CICS service to do I/O
to some non-CICS dataset, or if it was simply tolerated.
Actually, a wait only affects other transactions in the
same CICS region as the will have to wait, too. I remember
that in the early releases of OpenEdition / OS/390 UNIX
CICS and IMS both stated that they do not allow UNIX
services from within transactions because teh waits that
could result.

My naive understanding of the OS/360 multiprocessing
paradigm is that when one unit of work WAITs, another
is dispatched.  How does CICS manage to subvert this?
Why was it ever allowed?

What happens when a CICS transaction must do something
like:

Invalid PIN number; please re-enter

???  Does that spawn a separate transaction?

No matter whether waits are allowed or tolerated there is
big differece between a transaction doing an I/O to some
dataset or UNIX file and a transaction doing an I/O to
some named pipe. In the later case there is a second
*independent* process involved. And this process might
run or not when the CICS transacion does its I/O (to the
pipe). Long waits may result and this must be acceptable
to the transaction's purpose.

Well, there's nonblocking I/O.  But what do you do if the
pipe isn't ready?

-- gil

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Thompson, Steve
-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Paul Gilmartin
Sent: Thursday, January 28, 2010 8:58 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Re : Extracting STDOUT data from USS

On Thu, 28 Jan 2010 09:02:07 +0100, Hunkeler Peter (KIUP 4) wrote:

Gee, you do I/O, you wait ... [snip]

Sure. I don't know if there is a CICS service to do I/O
to some non-CICS dataset, or if it was simply tolerated.
Actually, a wait only affects other transactions in the
same CICS region as the will have to wait, too. I remember
that in the early releases of OpenEdition / OS/390 UNIX
CICS and IMS both stated that they do not allow UNIX
services from within transactions because teh waits that
could result.

My naive understanding of the OS/360 multiprocessing
paradigm is that when one unit of work WAITs, another
is dispatched.  How does CICS manage to subvert this?
Why was it ever allowed?

What happens when a CICS transaction must do something
like:

Invalid PIN number; please re-enter

???  Does that spawn a separate transaction?

SNIP

CICS required that a transaction NOT cause an OS wait. You used a CICS
service (via MACRO or Command level interface) and allowed CICS to
schedule those things that could incur a WAIT.

So when you did this call to CICS, it would recognize you would need to
wait (whether you actually needed to or now, you will now) and then it
would go dispatch another transaction that was ready to run. 

In effect, CICS was making virtual TCBs run using one real TCB, with
each virtual TCB being a transaction (pseudo conversational or true
conversational).

Today, CICS has multiple TCBs to handle different things, but still the
MAIN TASK TCB is generally not allowed to incur an OS wait because the
whole CICS system may stall as a result.

Since Unix System Services (USS for this posting) may incur a WAIT those
things are not allowed in a transaction that runs in the main task
because of being able to cause the CICS system to stall.

IHTH

Steve Thompson

-- Opinions expressed by this poster may not reflect those held by
poster's employer --

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Howard Brazee
On 28 Jan 2010 07:34:29 -0800, steve_thomp...@stercomm.com (Thompson,
Steve) wrote:

Invalid PIN number; please re-enter

Personal Identification Number Number?

At least this is working communication - unlike trying to guess what
is meant by 12:00 PM.

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Hunkeler Peter (KIUP 4)
What happens when a CICS transaction must do something
like:

Invalid PIN number; please re-enter

???  Does that spawn a separate transaction?

The basic design of transaction managers is that there
is a message queue manager which stacks messages until
a transaction becomes idle so it can handle the message.

The transaction would read one message, process it, and
then send a message back to the user (i.e terminal). So
the wait for user action is not tied to any running 
transaction. There is a way to program transactions that
is called Wait-For-Input transactions: Once they are 
finished with one transaction, they don't end but read
the next input message from the message queue (which 
probably comes from another user). 

IMS was designed to run multiple transaction regions
called message processing regions (MPP). Each MPP was 
running only one transaction at a time. The IMS controller
dispatched the correct transaction for the next message
to the next free MPP.

CICS was originally designed to be a single address 
space multi user transaction manager. Therefore CICS
had multiple tasks running in one region: terminal
input / output, queue manager, db access, transaction 
dispatcher, etc, but there was only one transaction 
related MVS-task. The CICS transaction dispatcher
schedules the transactions for the messages to be
worked onto that task one after the other. 

If an IMS transaction incurs a WAIT, only that 
MPP was waiting, the other MPPs continued to run.
If a CICS transaction incurs a WAIT the whole
transaction processing is blocked.

CICS has evolved much and is running wiith multiple
address spaces and even multiple transaction tasks
nowadays.

--
Peter Hunkeler
Credit Suisse

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Howard Brazee
 
 On 28 Jan 2010 07:34:29 -0800, steve_thomp...@stercomm.com (Thompson,
 Steve) wrote:
 
 Invalid PIN number; please re-enter
 
 Personal Identification Number Number?

Usually seen on an Automated Teller Machine machine; probably at the
Department of Redundancy Department.

 At least this is working communication - unlike trying to guess what
 is meant by 12:00 PM.

Days have 24 hours; why not clocks?

   -jc-

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


Re: Re : Extracting STDOUT data from USS

2010-01-28 Thread Binyamin Dissen
On Thu, 28 Jan 2010 08:58:24 -0600 Paul Gilmartin paulgboul...@aim.com
wrote:

:My naive understanding of the OS/360 multiprocessing
:paradigm is that when one unit of work WAITs, another
:is dispatched.  How does CICS manage to subvert this?
:Why was it ever allowed?

:What happens when a CICS transaction must do something
:like:

:Invalid PIN number; please re-enter

:???  Does that spawn a separate transaction?

One issues a CICS wait. With an ECB. That returns control to the CICS
dispatcher.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


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

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

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread Jan MOEYERSONS
On Tue, 26 Jan 2010 09:33:24 -0600, Paul Gilmartin paulgboul...@aim.com 
wrote:

On Tue, 26 Jan 2010 13:15:45 +0100, Hunkeler Peter (KIUP 4) wrote:

Create a named pipe and have the writer send its stdout to that pipe.
In CICS run a process to read form that named pipe. Prerequisite to
this design is that both ends must be active simultaneuosly.

Good answer; seems to meet the OP's requirement.  (But I don't know
CICS; I seem to remember discussions about problems using Unix
System Services in CICS.)

We have done some tests and found that there is no issue to read and write 
HFS files from a CICS transactions, using the C library functions for reading 
and writing files. As a named pipe is just another file, it should work. 

Obviously, when in CICS, you're not alone... Make sure proper serialization (E 
C 
ENQ, E C DEQ) is done.

Cheers,

Jantje.

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread Jim Thomas
Hello Peter,

You're correct, I do not want to write to spool .. :-) 


Kind Regards,

Jim Thomas
617-233-4130  (mobile)
636-294-1014 (res)
j...@thethomasresidence.us

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf
Of Hunkeler Peter (KIUP 4)
Sent: Wednesday, January 27, 2010 12:59 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Re : Extracting STDOUT data from USS

If the OP actually wants to write to spool, and is not necessarily
running under BPXBATCH, he can do:

I can't see where the OP ever said he wanted to write to the spool.

--
Peter Hunkeler
Credit Suisse

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

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.5.432 / Virus Database: 271.1.1/2638 - Release Date: 01/26/10
19:36:00

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread Hunkeler Peter (KIUP 4)
We have done some tests and found that there is no issue to read 
and write HFS files from a CICS transactions, using the C library 
functions for reading and writing files. 

I'm by far anything else than a CICS expert, but I seem to remember
that CICS transaction must not go into a wait, be it deliberately or
as the result of calling a non-CICS service. I think nowadays there
is a special queue to put transactions that do incur waits.

As a named pipe is just another file, it should work. 

A named pipe is different from a standard file in that both ends
my become blocked upon a read or write, resp. The reader if there
is insufficient data in the pipe, i.e. the reader is faster reading
from the pipe than the writer can write into it. The writer if the 
pipe becomes full, i.e. the writer is faster in writing to the pipe
than the reader can read from it.

I'm not saying that to be an inhibitor but this fact has to be taken
into account.

--
Peter Hunkeler
Credit Suisse

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread Paul Gilmartin
On Wed, 27 Jan 2010 13:10:27 +0100, Hunkeler Peter (KIUP 4) wrote:

I'm by far anything else than a CICS expert, but I seem to remember
that CICS transaction must not go into a wait, be it deliberately or
as the result of calling a non-CICS service. I think nowadays there
is a special queue to put transactions that do incur waits.

Gee, you do I/O, you wait (or the access method waits) until
the DECB gets posted.  I suppose CICS might bypass access methods
and do STARTIO directly ...

I drifted into spool after Jim Thomas's earliest ply yesterday
(but the Subject: started Re:) mentioned writer, which I took
to be JES terminology.

-- gil

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread Jim Thomas
My apologies Gil,

I meant an external writer.

Kind Regards,

Jim Thomas
617-233-4130  (mobile)
636-294-1014 (res)
j...@thethomasresidence.us


-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf
Of Paul Gilmartin
Sent: Wednesday, January 27, 2010 11:37 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Re : Extracting STDOUT data from USS

On Wed, 27 Jan 2010 13:10:27 +0100, Hunkeler Peter (KIUP 4) wrote:

I'm by far anything else than a CICS expert, but I seem to remember
that CICS transaction must not go into a wait, be it deliberately or
as the result of calling a non-CICS service. I think nowadays there
is a special queue to put transactions that do incur waits.

Gee, you do I/O, you wait (or the access method waits) until
the DECB gets posted.  I suppose CICS might bypass access methods
and do STARTIO directly ...

I drifted into spool after Jim Thomas's earliest ply yesterday
(but the Subject: started Re:) mentioned writer, which I took
to be JES terminology.

-- gil

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

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.5.432 / Virus Database: 271.1.1/2647 - Release Date: 01/27/10
13:08:00

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


Re: Re : Extracting STDOUT data from USS

2010-01-27 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:ibm-m...@bama.ua.edu] On Behalf Of Jim Thomas
 Sent: Wednesday, January 27, 2010 12:30 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: Re : Extracting STDOUT data from USS
 
 My apologies Gil,
 
 I meant an external writer.
 
 Kind Regards,
 
 Jim Thomas

The term external writer will likely imply SPOOL access too as there is such 
a thing in JES2. It is external to JES2 and is a writer of SPOOL to other 
media, such as sequential disk or tape.

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

 

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


Re : Extracting STDOUT data from USS

2010-01-26 Thread Jim Thomas
Top of the morning to everybody,

I'm looking for some direction and advice on dynamically extracting STDOUT
data from USS that I can feed into a CICS sub-system. Would a writer /
listener be the right direction ?. How would I extract the STDOUT data ?.
Could BPXWDYN be used ?. 

I'd prefer to have each record (as it were) be sent to my subsystem as it's
written (or immediately thereafter).

Any thoughts and or advice would be greatly appreciated. 

Kind Regards,

Jim Thomas
617-233-4130  (mobile)
636-294-1014 (res)
j...@thethomasresidence.us

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


Re: Re : Extracting STDOUT data from USS

2010-01-26 Thread Walter Marguccio
 I'm looking for some direction
 From j...@thethomasresidence.us


 I'm looking for some direction and advice on dynamically extracting STDOUT
 data from USS that I can feed into a CICS sub-system. Would a writer /
 listener be the right direction ?. How would I extract the STDOUT data ?.
 Could BPXWDYN be used ?. 

Maybe I am misundertanding you, but IIRC STDOUT can be written to datasets
ever since z/OS 1.5. Why would you want to write it to the spool first ?

Which z/OS level are you at ?

Walter Marguccio
z/OS Systems Programmer
BELENUS LOB Informatic GmbH
Munich - Germany


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



Re: Re : Extracting STDOUT data from USS

2010-01-26 Thread Hunkeler Peter (KIUP 4)
 I'm looking for some direction and advice on dynamically extracting 
 STDOUT data from USS that I can feed into a CICS sub-system. Would a 
 writer / listener be the right direction ?. How would I extract the 
STDOUT data ?. 

Create a named pipe and have the writer send its stdout to that pipe.
In CICS run a process to read form that named pipe. Prerequisite to
this design is that both ends must be active simultaneuosly.

--
Peter Hunkeler
Credit Suisse

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


Re: Re : Extracting STDOUT data from USS

2010-01-26 Thread Paul Gilmartin
On Tue, 26 Jan 2010 13:15:45 +0100, Hunkeler Peter (KIUP 4) wrote:

 I'm looking for some direction and advice on dynamically extracting
 STDOUT data from USS that I can feed into a CICS sub-system. Would a
 writer / listener be the right direction ?. How would I extract the
STDOUT data ?.

Create a named pipe and have the writer send its stdout to that pipe.
In CICS run a process to read form that named pipe. Prerequisite to
this design is that both ends must be active simultaneuosly.

Good answer; seems to meet the OP's requirement.  (But I don't know
CICS; I seem to remember discussions about problems using Unix
System Services in CICS.)

If the OP actually wants to write to spool, and is not necessarily
running under BPXBATCH, he can do:

Some-command | Rexx-EXEC

where Rexx-EXEC (actually any language) allocates SYSUT1 to /dev/fd/0
and SYSUT2 to SYSOUT, then LINKMVS IEBGENER.

For writing to a catalogued data set, it's easier:

Some-command | cp /dev/fd/0 //'DATA.SET.NAME'

-- gil

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


Re: Re : Extracting STDOUT data from USS

2010-01-26 Thread Jim Thomas
Peter / Gil .. thank you for your advice. 

Kind Regards,

Jim Thomas
617-233-4130  (mobile)
636-294-1014 (res)
j...@thethomasresidence.us


-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf
Of Paul Gilmartin
Sent: Tuesday, January 26, 2010 9:33 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Re : Extracting STDOUT data from USS

On Tue, 26 Jan 2010 13:15:45 +0100, Hunkeler Peter (KIUP 4) wrote:

 I'm looking for some direction and advice on dynamically extracting
 STDOUT data from USS that I can feed into a CICS sub-system. Would a
 writer / listener be the right direction ?. How would I extract the
STDOUT data ?.

Create a named pipe and have the writer send its stdout to that pipe.
In CICS run a process to read form that named pipe. Prerequisite to
this design is that both ends must be active simultaneuosly.

Good answer; seems to meet the OP's requirement.  (But I don't know
CICS; I seem to remember discussions about problems using Unix
System Services in CICS.)

If the OP actually wants to write to spool, and is not necessarily
running under BPXBATCH, he can do:

Some-command | Rexx-EXEC

where Rexx-EXEC (actually any language) allocates SYSUT1 to /dev/fd/0
and SYSUT2 to SYSOUT, then LINKMVS IEBGENER.

For writing to a catalogued data set, it's easier:

Some-command | cp /dev/fd/0 //'DATA.SET.NAME'

-- gil

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

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.5.432 / Virus Database: 271.1.1/2638 - Release Date: 01/26/10
07:46:00

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


Re: Re : Extracting STDOUT data from USS

2010-01-26 Thread Hunkeler Peter (KIUP 4)
If the OP actually wants to write to spool, and is not necessarily
running under BPXBATCH, he can do:

I can't see where the OP ever said he wanted to write to the spool.

--
Peter Hunkeler
Credit Suisse

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