Another (pedestrian) way of sending file(s) from a first level VM to the
second and back is by using the spool. Although limited because of the
initial size of the spool, this is handy in the initial stages of the
installation while you still don't have any other products installed on
the 2nd level. Also useful if you don't want to think where your
minidisks are :-)

1. Make sure you have a virtual reader and punch defined in a 1st
level's userid for the 2nd level VM (e.g. SPOOL 000C 3505 X and SPOOL
000D 3525 X). Those will be 2nd level's "real" reader and punch.
2. Add the following in the SYSTEM CONFIG on the 2nd level VM and then
re-IPL 2nd level:
Rdevice  000C  Type  Reader Class X      
Rdevice  000D  Type  Punch  Classes X    
3. On the 2nd level's user with privilege class D enter the following to
start the real reader and punch (this step may have to be repeated after
the first file comes in/out):
cp sta c 
cp sta d
4. Now you can use DISK DUMP command and RECEIVE to send the files both
ways.



Here's a small EXEC to send file(s) from the 1st level to 2nd. It can be
used to send a file from anywhere in the 1st level's RSCS network to a
specific user inside the second level VM. FILELIST option means that fn
ft fm is a fileid of the file that contains a list of files, where the
first three words of each line are fn, ft and fm of the files to be
sent. All the files in the list will be sent as one punch file. Useful
if you do FILELIST and save the list... Substitute your first level's
nodename instead of C$BROWN and 2nd level's userid on 1st level instead
of VM43. You may as well rename the exec.
/**                                                               
*** Send file(s) to the second level VM                           
*** Format: TOVM43 fn ft fm <target_user> <(<Filelist>>           
***                         <MAINT      >                         
***                         <-----      >                         
**/                                                               
   arg fn ft fm userid . '(' option .                             
---<snip>---
   if userid = ''                                                 
      then userid = 'MAINT'                                       
   'CP SP PU RSCS CLASS X CONT NOH NAME VM43 PUNCH'               
   'CP TA DE PU C$BROWN VM43'                                     
   'EXECIO 1 PUNCH (STRING ID' userid                             
   if abbrev('FILELIST', option, 1)                               
      then 'PIPE <' fn ft fm '| SPECS /DISK DUMP/ 1 W1-3 NW | CMS'
      else 'DISK DUMP' fn ft fm                                   
   'CP SP PU CLOSE'                                               
   'CP SP PU OFF CLASS A NOCONT NON'                              



To send a file from 2nd to the 1st level, first SPOOL the 2nd level VM's
punch to the target user on the 1st level, then run this exec on a
second level user:
/**                                                              
*** Send file(s) to the first level VM                           
*** Format: TOVM1 fn ft fm <(<Filelist>>                         
**/                                                              
   arg fn ft fm . '(' option .                                   
---<snip>---
   'CP SP PU OFF CL X NOCONT NOH NON'                            
   if abbrev('FILELIST', option, 1)                              
      then 'PIPE <' fn ft fm '| SPECS /DISK DUMP/ 1 W1-3 NW | CMS'
      else 'DISK DUMP' fn ft fm                                  
   'CP SP PU CLOSE'                                              
   'CP SP PU CL A'                                               



After receiving a file in the target reader on the 1st level, run this
on the target userid to strip the separator and trailing lines and
receive the DISK DUMP-ed file:
/**                                                                   
*** Receive file(s) from the second level VM                          
*** Format: TOVM1REC spoolid <receive_args_and_options>

**/                                                                   
   arg spid options                                             
   'CP SP PU *'                                                       
   'PIPE READER FILE' spid '| DROP 6 | DROP LAST | SPECS 2-* 1 | PUNCH'
   if rc /= 0                                                         
      then exit 3                                                     
   parse value diag(8, 'C PU') with . . spid2 .                       
   'CP SP PU OFF'                                                     
   'RECEIVE' spid2 options                                        



Ivica Brodaric

This message and any attachment is intended for the use of the individual or 
entity to whom it is addressed by the first sender and contains information 
which may be confidential and/or privileged.

If you receive this message and any attachment in error, delete it immediately 
and notify the sender by email or phone +612 9218 1000 Unless you have been 
expressly authorised by the sender, you are prohibited from copying, 
distributing or using the information contained in this message and any 
attachment

Tabcorp Holdings Ltd(ABN 66 063 780 709)and its related bodies corporate 
"Tabcorp" is not responsible for any of the changes made to this message or any 
attachment other than those made by Tabcorp, or for the effect of changes made 
by others on the meaning of this message and any attachment

Tabcorp does not represent that any attachment is free from computer viruses or 
defects and the user assumes all responsibility for any loss or damage 
resulting directly or indirectly from the use of any attachment

Reply via email to