I just joined the list today and haven't found any archives that address
these issues.

I have a pipe that uses "getfiles" to read one or more files and feed their
contents to a "lookup" as detail records.  Three things are happening that I
can't explain.

1. The pipe does not abort when it runs out of memory.  Here is the relevant
part of the pipe:

'PIPE (name huge end ?) stem input_files.',  /* fn ft (fm|dir) etc. */  
   '| console',                     /* show details */                  
   '| getfiles',                    /* all records from all files */    
   '| acc: lookup count autoadd w1',   /* don't care about count, but */
   ,                                /* forces dump of masters at end */ 

and here is the relevant (edited) part of the console output:

14:56:17 <fn> 20100209 <dir> F 1024   61468   15367 2010-02-10 04:27:55
14:57:34 <fn> 20100208 <dir> F 1024   61462   15366 2010-02-09 04:25:01
14:57:58 PIPSTO122E Insufficient free storage.
14:57:58 PIPMSG004I ... Issued from stage 6 of pipeline 1 name "huge".
14:57:58 PIPMSG001I ... Running "lookup count autoadd w1".
14:57:58 <fn> 20100205 <dir> F 1024   61388   15347 2010-02-08 04:34:22
14:57:59 <fn> 20100204 <dir> F 1024   61337   15335 2010-02-05 04:27:43
14:57:59 <fn> 20100203 <dir> F 1024   61291   15323 2010-02-04 04:31:34
14:57:59 <fn> 20100202 <dir> F 1024   61248   15312 2010-02-03 04:25:37
14:57:59 <fn> 20100201 <dir> F 1024   61402   15351 2010-02-02 04:23:53

From the time stamps it appears that after memory is exhausted no records
are read from any of the remaining input files, since their display lines
all have the same time stamp.  Still, I would expect the pipe to abort as
soon as it runs out of free storage.  Shouldn't it?

2. I would expect the pipe's return code to be non-zero.  But it is 0.  Why?
 This is the most critical issue, since the program relies on the return
code to detect the failure.

3. I would expect the pipe to use the same amount of storage no matter how
many files are read.  Those records should move through the pipe one at a
time, right?  They are detail input to lookup, not master input.  The pipe
works fine when only one or two files are read, but runs out of memory with
11 inputs.  It works with 11 inputs when I increase the amount of memory.

The result is essentially the same with all versions of pipes that I have
tried, including these:
1.0110 11 Oct 2005, 11 Rev 0A Mod 0028
1.0111 5 May 2009, 11 Rev 0B Mod 0021

All suggestions much appreciated.  Thank you.

Reply via email to