You can have pipeline segments waiting for records, but they cannot wait
for connexions (other than things like TCPLISTEN, but that is a
different kind of connexion).
Two general approaches:
1. If you know what data you will use to distribute the records among
the processing pipeline segments, you'd typically use DEAL to distribute
the records and start the whole refinery up front.
2. A sipping pipeline to perform the default processing. As this
pipeline sees new records, it would add a pipeline to select the record
and shunt it to the output like this:
peekto record
addpipe (end ?) *.input.0:|s: select|process| o:faninany|*.output.0:
?s: | *.input.0: | *.output.0:|o:
You may, of course, elect to send the selected records to a different
destination, e.g., a file.
The action for an unconnected stream is to treat is as at end-of-file,
so you'd get RC 12 on PEEKTO or READTO. (There is the case of a sipping
pipeline, but here EOF is not presented to the subroutine; it is
reconnected to the main input when the subroutine terminates.)
COMMIT is a different ballgame altogether. My best advice is to read
carefully:
http://vm.marist.edu/~pipeline/pipjarg.pdf
-------- Forwarded Message --------
Subject: Understanding relationship between ADDPIPE and COMMIT
Date: Tue, 1 Dec 2020 03:42:44 +0000
From: David Boyes <[email protected]>
Reply-To: The IBM z/VM Operating System <[email protected]>
To: [email protected]
This may be a question for the CMS Pipes mailing list, but I figured I’d
start with the brain trust here and see if there’s better way.
I’m trying to set up some pipeline fragments with addpipe that get
initialized and then block immediately until started when another
pipeline connects to them and writes a record. Reading through the
section on PEEKTO, If the pipeline is started and hits a PEEKTO with no
input stream connected, I **think** the implied action is for the
subpipeline to block and not get dispatched until something connects and
a input record becomes available. Is this understanding correct, or am I
totally misunderstanding this?
If I’m missing the point, how should I think about accomplishing this?
The driver code filters a set of records and the idea was to select
records of a certain type and send them to an appropriate pipe for
processing without blocking the selection and filtering piece. I could
probably do this with CMS queues or tcpclient and have the subpipelines
trigger on that, but it that the most effective way to do this?
------------------------------------------------------------------------
To unsubscribe from the IBMVM list, click the following link:
http://listserv.uark.edu/scripts/wa-UARKEDU.exe?SUBED1=IBMVM&A=1