Oh and I really (really) do not want to use PIPESERV (or any other tools beyond native built-in stages and/or Rexx stages I write myself). This feels like it should be simple enough to roll my own, if only I knew where to begin.
Bob Cronin On Fri, Jan 9, 2009 at 3:52 PM, Glenn Knickerbocker <[email protected]>wrote: > Bob Cronin wrote: > > been too complex for me to get my head around how I'd do them entirely in > > the pipeline, and I've always fallen back to using the standard > > WAKEUP-driven Rexx "Do Forever" loop. > > The starting point is just to move that DO FOREVER loop into the > pipeline. Use ADDRESS COMMAND to issue all the same CMS commands you > would normally, except for PIPE. Use CALLPIPE instead of PIPE to run > any one-shot pipelines. > > None of that improves anything directly, of course. What it buys you is > that now you can use ADDPIPE to add subroutine pipelines your program > can read and write to. You're then starting up those pipelines just > once for the whole program, rather than repeatedly for each record or > group of records you need to process. > > Then you can look at replacing WAKEUP with STARMSG, DELAY, etc., and > maybe even eliminating the main loop. Rather than doing all that from > scratch, though, you can use PIPESERV as your starting point: > > PIPE (end /) serv.rdr: pipeserv | xferrdr / serv.smsg: | echosmsg > > Then your small XFERRDR and ECHOSMSG stages do the parts you care > about. Each of those can do the bulk of its work in a single subroutine > pipeline. > > ¬R >
