IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to recall (or wait for recall of) dataset in HLASM


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
JPVRoff

New User


Joined: 06 Oct 2009
Posts: 41
Location: Melbourne, Australia

PostPosted: Wed Feb 18, 2015 9:19 am
Reply with quote

Hi,
we've got an assembly subroutine that uses SVC 99 (DYNALLOC) to organise the specific dataset allocation as requested. Works fine on every site excepting those that do not force a WAIT when doing a dataset recall.

Which happens to be the default of our company mainframe.

I've been having a look around and it seems that if the S99NOMIG flag is not on, then it should recall the dataset, but our routine simply continues (although it does tell us that we have a MIGRAT dataset in the volume field.

Does anyone know how to issue the equivalent of a HWAIT in HLASM? I've been searching manuals and www and am finding very little (possibly it's my criteria).

Any pointers would be appreciated!
Back to top
View user's profile Send private message
JPVRoff

New User


Joined: 06 Oct 2009
Posts: 41
Location: Melbourne, Australia

PostPosted: Wed Feb 18, 2015 10:21 am
Reply with quote

I now realise my original heading was a bit unclear. I don't have a solution, I was just wondering if anyone else has had this problem.
We can do this stuff on Rexx/Clist, or when we're running under TSO, but sometimes this is not where the subroutine is called from. So I was hoping there was a solution somewhere I just haven't found yet!
Back to top
View user's profile Send private message
Paul Voyner

New User


Joined: 26 Nov 2012
Posts: 52
Location: UK

PostPosted: Wed Feb 18, 2015 12:58 pm
Reply with quote

Looking at the manual for S99NOMIG, what you describe is what happens when S99NOMIG is on, namely does not recall and returns MIGRAT to the allocation routine. So do you know for sure what setting this bit has ?
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 917
Location: The Universe

PostPosted: Wed Feb 18, 2015 5:26 pm
Reply with quote

When the S99NOMIG bit in S99FLG11 in the S99RB is set, dynamic allocation does not recall a migrated data set and fails the allocation with X'0278' in S99ERROR in the S99RB. IKJEFF18 (DAIRFAIL) prepares a pretty decent message for this error -

IKJ56240I DATA SET xxx NOT ALLOCATED, DATA SET IS MIGRATED AND WAS NOT RECALLED

In other words, to recall a migrated data set and wait for the recall to complete, just allocate the data set without setting S99NOMIG
Back to top
View user's profile Send private message
JPVRoff

New User


Joined: 06 Oct 2009
Posts: 41
Location: Melbourne, Australia

PostPosted: Thu Feb 19, 2015 2:45 am
Reply with quote

steve-myers wrote:
When the S99NOMIG bit in S99FLG11 in the S99RB is set, dynamic allocation does not recall a migrated data set and fails the allocation with X'0278' in S99ERROR in the S99RB. IKJEFF18 (DAIRFAIL) prepares a pretty decent message for this error -

IKJ56240I DATA SET xxx NOT ALLOCATED, DATA SET IS MIGRATED AND WAS NOT RECALLED

In other words, to recall a migrated data set and wait for the recall to complete, just allocate the data set without setting S99NOMIG

Hi Steve,

That is how we run the routine (S99NOMIG is set to 0), but it doesn't work like the "WAIT" parameter in a HRECALL, or the "RECALL" parameter in a LISTDSI. It seems to use the system settings for recall processing. For our own mainframe, this setting does not wait as the default for dynamic allocations (of course, it does when allocated in JCL, but this is not the requirement). I don't believe we can have this changed back, as it was the subject of heated debate before it was implemented.

For our 'client' sites, all of these are set to RECALL and WAIT for dataset allocations when being dynamically allocated.

So, we can work out that a dataset is not allocated, but a looping wait within the program does seem a bit of a Neanderthal way to go about it. And I cannot seem to locate a DFHSM API (if there is such a thing) so that we can simply issue a "HWAIT" (or equivalent).
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
No new posts Allocated cylinders of a dataset DB2 12
No new posts Sort First/last record of a subset th... DFSORT/ICETOOL 7
No new posts Reading dataset in Python - New Line ... All Other Mainframe Topics 22
Search our Forums:

Back to Top