Does anyone have a batch job in REXX to HRECALL migrated datasets in
TSO/ISPF?
I have been using the TSO HRECALL 'name.*.*.*' to mask the qualifiers, but
since I have thousands
of datasets to recall, it's tying up my machine.
I've also used HRECALL in 3.4 beside each dataset name, but that takes
time.
I just want a simple way to recall all of the datasets in batch by putting
in only one or two hi-level
qualifiers and mask the rest of the name to recall everything at once.
Any help would be greatly appreciated.
Thanks so much and have a wonderful day!!
Anne
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
>I have been using the TSO HRECALL 'name.*.*.*' to mask the qualifiers, but
>since I have thousands
>of datasets to recall, it's tying up my machine.
I use this type of thing to generate a clist which can then be run in batch. Run it
within ISPF, eg: TSO %RECALL ayork.test.*
/* REXX - Create a clist to recall all Migrated data sets */
/* 1st parm is a dsname pattern for ISPF 3.4 */
/* 2st parm, if non-blank appends to existing clist */
Arg 1 prefix append .
Parse Value prefix userid() With prefix .
If append='' Then
Do
'ALLOC F(BLAB) DA(RECALL.CLIST) MOD UNIT(SYSDA)',
' REUSE SPACE(0,0) TRACK CAT'
'FREE F(BLAB) DELETE'
End
'ALLOC F(BLAB) DA(RECALL.CLIST) MOD CAT UNIT(SYSDA) SPACE(1,1) TRACK ',
' DSORG(PS) LRECL(80) RECFM(V B) BLKSIZE(23440)'
Do queued();Pull;End
queue 'TSOLIB DEACTIVATE'
queue 'FREE ALL'
Address 'ISPEXEC' 'ISPEXEC LMDINIT LISTID(LISTID) LEVEL('prefix')'
Say 'LMDINIT: 'rc
ds=''
Do Until rc>0
Address 'ISPEXEC' 'ISPEXEC LMDLIST LISTID(&LISTID) OPTION(LIST)',
'STATS(YES) DATASET(DS)'
If rc=0 & zdlmigr = 'YES' Then
Queue substr("HRECALL '"ds"'",1,53)
End
Address 'ISPEXEC' 'ISPEXEC LMDFREE LISTID('listid')'
Say 'LMDFREE: 'rc
Queue 'DELETE RECALL.CLIST'
'EXECIO 'queued()' DISKW BLAB (FINIS'
'FREE F(BLAB)'
Address 'ISPEXEC' 'ISPEXEC LMINIT DATAID(BLAB) DATASET(RECALL.CLIST) ',
'ENQ(EXCLU)'
Address 'ISPEXEC' 'ISPEXEC EDIT DATAID('blab')'
Address 'ISPEXEC' 'ISPEXEC LMFREE DATAID('blab')'
Doug Nadel
----------------------------------------
ISPF and OS/390 Tools & Toys page:
http://somebody.home.mindspring.com/
Mail containing HTML or any attachments, including vcf files, is
automatically discarded. If you need to send me an attachment,
please let me know so that I can change my email filters.
I'm Putting my Storage Admin / HSM Admin hat on for a second.
Why are you recalling all your datasets???
Have you talked to your Storage Admin people about what you are doing???
Could a different SMS management class be better for your datasets???
Jim
-----Original Message-----
From: Anne Remy [mailto:ayo...@CSC.COM]
Sent: Monday, November 12, 2001 10:46 AM
To: TSO-...@VM.MARIST.EDU
Subject: Need Easier Way To HRECALL Datasets
Greetings Everyone,
Does anyone have a batch job in REXX to HRECALL migrated datasets in
TSO/ISPF?
I have been using the TSO HRECALL 'name.*.*.*' to mask the qualifiers, but
since I have thousands
of datasets to recall, it's tying up my machine.
I've also used HRECALL in 3.4 beside each dataset name, but that takes
time.
I just want a simple way to recall all of the datasets in batch by putting
in only one or two hi-level
qualifiers and mask the rest of the name to recall everything at once.
Any help would be greatly appreciated.
Thanks so much and have a wonderful day!!
Anne
----------------------------------------------------------------------
DSNAME (dsname/password...) is a required positional parameter
you use to specify the data set or list of data sets that you
want to recall. For 'dsname', substitute the data set name
or list of data set names that you want to recall. You can use
a data-set filter, or a fully qualified alias, for any
dsname in a list.
They show this example:
HRECALL ELMST.*.TEXT NOWAIT
So I would assume you could wrap some JCL around your dataset name and get
this:
//*********************************************
//HRECALL EXEC PGM=IKJEFT01
//SYSPRINT DD DUMMY
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
HRECALL name.*.*.* NOWAIT
/*
I haven't tried this, but if the online docs are ok this should do what you
need.
Steve
Create a Rexx:
/* Rexx */
"alloc fi(dsnlist) da('your.dataset') shr"
"execio * diskr list (finis stem dsn."
do i=1 to dsn.0
cmd.i = "HRECALL '"dsn.i"'"
cmd.i
say "Recalling" dsn.i
end
exit
Execute the Rexx in batch:
// EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ex 'your rexx exec'