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

Reply via email to