I'm beginning to find this out.

I guess I'm trying to figure out the curve and Pipes on the fly....

-----Original Message-----
From: The IBM z/VM Operating System [mailto:ib...@listserv.uark.edu] On
Behalf Of Alan Ackerman
Sent: Sunday, December 21, 2008 1:58 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Using REXX/VM

On Fri, 12 Dec 2008 12:28:22 -0600, Wilson, Roger
<roger.wil...@milwaukee
.gov> wrote:

>I am writing an exec that reads a file pulls certain lines out and
write

>this data to an output file. Simple.
>
> 
>
>I am trying to use the CHARIN() and CHAROUT and I am failing miserably.



For starters, since VM (and z/OS) are line-oriented, you will find that
L
INEIN and LINEOUT are 
much more efficient. Unfortunately, the performance of both of these is
a
lso quite poor. I have 
sped up an EXEC many tens of times replacing LINEIN/LINOUT with EXECIO.
(
Look that up in CMS 
commands.) I got IBM to fix the LINEIN/LINEOUT performance via an APAR,
h
owever a subsequent 
APAR broke it again. By the time I noticed, I did not care, because IBM
h
ad included CMS Pipelines 
in VM, and it can be much faster if you do it right. (Do not use VAR or
S
TEM.)

So as others have told you, the best way is CMS Pipelines, but there is
q
uite a learning curve.

>Right now I queue the commands:
>
> 
>
>   parse arg where                  
                         
           
>
>   if where = '' then where = 'PERFSVM '          
                      
>
>   'PIPE VMC ' where ' USER ',              
                         
   
>
>' | stem results. ',                  
                         
         
>
>' | > FCX112 RESULTS A'                 
                         
       
>
>      QUEUE 'BOTTOM'                  
                         
         
>
>      QUEUE 'GET RUNDATE'                
                         
      
>
>      QUEUE 'XEDIT FCX112 RESULTS A'            
                        
>
>      QUEUE '/CICS'                  
                         
          
>
>      QUEUE 'PUT'                   
                         
           
>
>      QUEUE 'QQUIT'                  
                         
          
>
>      QUEUE 'GET'                   
                         
           
>
>      QUEUE 'XEDIT FCX112 RESULTS A'            
                        
>
>      QUEUE '/DOSVSE'                 
                         
         
>
>      QUEUE 'PUT'                   
                         
           
>
>      QUEUE 'QQUIT'                  
                         
          
>
>      QUEUE 'GET'                   
                         
           
>
>      QUEUE 'XEDIT FCX112 RESULTS A'        
>
>      QUEUE '/COMP'                  
                         

>
>      QUEUE 'PUT'                   
                         
 
>
>      QUEUE 'QQUIT'                  
                         

>
>      QUEUE 'GET'                   
                         
 
>
>      QUEUE 'FILE'                  
                         
 
>
>            'XEDIT SUMUSE LOG A (NOM'            
             
>
>'WAKEUP   +00:01:00'                  
                        
>
>EXIT            

Shades of the 1970s. Back then, REXX did nto exist (at least for
customer
s) and we had to use 
EXEC (now called EXEC1). To do anything useful, we stacked lines for
EDIT
 (predecessor of XEDIT) 
to process any data.

It's any interesting exercise, but seldom necessary. Someone (U Maine?)
i
nvented EXECIO and that 
was a big improvement.

The program stack exists to allow you to automate commands that prompt
fo
r input, such as 
FORMAT. I don't think it is valuable for much else. (Some people use it
t
o stack commands for 
FTP, but I prefer VMFTP which you can download.)

For programming in REXX on VM,I recommend you either learn CMS
Pipelines,
 or learn EXECIO. 
CMS Pipelines is far more powerful, but if you don't have time to learn
i
t, use EXECIO for REXX 
input and output.

The only advantage of CHARIN/CHAROUT or LINEIN/LINEOUT are portability
of
 REXX to other 
platforms. (z/OS does have EXECIO, though.) Once you start including CMS

commands in your 
REXX EXECs, though, they are not portable to any other platform, anyway.

Alan Ackerman
Alan (dot) Ackerman (at) Bank of America (dot) com 

Reply via email to