home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / bit / listserv / ibmmain / 2677 < prev    next >
Encoding:
Text File  |  1992-11-20  |  6.7 KB  |  124 lines

  1. Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
  2. Path: sparky!uunet!paladin.american.edu!auvm!STANFORD.BITNET!M.LAWRENCE
  3. Message-ID: <IBM-MAIN%92112012230003@RICEVM1.RICE.EDU>
  4. Newsgroups: bit.listserv.ibm-main
  5. Date:         Fri, 20 Nov 1992 10:18:54 PST
  6. Sender:       IBM Mainframe Discussion list <IBM-MAIN@RICEVM1.BITNET>
  7. From:         "Mark C. Lawrence" <M.Lawrence@STANFORD.BITNET>
  8. Subject:      IEFBR14
  9. Comments: To: ibm-main@ricevm1.bitnet
  10. Lines: 112
  11.  
  12. REPLY TO 11/19/92 10:53 FROM IBM-MAIN@RICEVM1.BITNET "IBM Mainframe Discussion
  13. list": DFHSM Recalls & Batch
  14.  
  15. On Thu, 19 Nov 1992 "David F. Juraschek" <JURASCHEK@GMUVAX.BITNET> said,
  16. >DFHSM does space management on a number of our non-SMS volumes.
  17. >A batch job runs which attempts to delete a DSN in the first step via
  18. >IEFBR14.  The DSN happens to have been migrated sometime in the past by
  19. >DFHSM's space management activities.
  20. >There is no console request to mount any ML2 tape, and there is no delay
  21. >in the IEFBR14 step which ends RC=0.
  22. >(It would appear that the DSN has therefore been deleted.)
  23. >A later step attempts to create the DSN anew.  This step abends for one of
  24. >two reasons:
  25. >   The DSN is still cataloged (but physically is non-existant)
  26. >or The DSN is not cataloged (but physically exists).
  27. >
  28. >This phenonema has occured several times with differing job streams, but
  29. >the scenario is the same.  The first step attempts to delete a migrated
  30. >DSN and ends RC=0 with no console indication that a physical recall has
  31. >actually occured.  A later step (may be the next job step) blows because
  32. >for some reason it can't create this DSN anew.  No other job stream or
  33. >human activity creates these DSN's.  Post abend inspection indicates an
  34. >uncataloged DSN or a cataloged DSN with no physical entity.  The obvious
  35. >problem is that somehow there is a syncronization problem with DFHSM and
  36. >a delete via IEFBR14.  (The IEFBR14 shouldn't really end RC=14 until the
  37.                                                           ¢¢¢¢¢
  38. >DSN is physically removed and the catalog entry deleted, should it not?)
  39.  
  40. I'm not an expert in DFHHSM, but one thing I can tell you is that when
  41. IEFBR14 ends, the return code is going to be 0.  IEFBR14 is a NULL PROGRAM,
  42. to wit,
  43.          SR    15,15    Set return code=0
  44.          BR    14       Return
  45.  
  46. When you "use IEFBR14" to delete or allocate a data set. you are using MVS
  47. step allocation/termination services, not a utility program.  These MVS
  48. services don't always do what you want.  For example, if you have a
  49. disposition of DELETE and the data set isn't on the volume, you will get
  50.          IEF283I dsn    NOT DELETED 8
  51. at step termination.  This does not affect any condition codes or the
  52. processing of subsequent steps.  Assuming a nonspecific volume request, a
  53. status of MOD will be treated as NEW if the file isn't in the catalog, because
  54. MOD is treated as NEW *if no volume information is available*.  In this case
  55. if the file is not cataloged, the system will try to create it (and then
  56. delete it at step termination, since you had a disposition of DELETE).  The
  57. conditional disposition is irrelevant, since IEFBR14 will never ever ever ever
  58. ever ABEND.  [for extra credit:  IEFBR14 is the only program to have had only
  59. one bug in its entire history.  What was it?]
  60.  
  61. >We have a number of pre-DFHSM job streams that use IEFBR14 and
  62. >DISP=(MOD,DELETE,DELETE) to delete old copies of files that are re-created
  63. >in the same job stream.
  64.  
  65. OK, let's look at this process.  You have a status of MOD, a disposition of
  66. DELETE, a conditional disposition of DELETE.  Status=MOD means:
  67.  
  68. 1.  If volume information is available, treat as old (and position to the
  69.     end of the data set when it is opened, but you're not going to open it).
  70. 2.  If no volume information is available, treat as NEW and allocate it.
  71.     Assuming you did not specify a volume on the DD statement, volume info
  72.     will be available iff the data set is in the catalog (or pass queue).
  73.  
  74. The following assumes that you don't specify a volume on the DD statement.
  75.  
  76. If the data set (a) existed and was properly cataloged, the actual data set was
  77. allocated; if you ran a real program, it could open the data set.  If the
  78. data set (b) did not exist and was not cataloged, it has now been created.  If
  79. the data set (c) existed but was not cataloged, a duplicate has now been created
  80. (unless a duplicate exists on all eligible volumes, in which case your step
  81. fails in alloation).  If the data set (d) was cataloged but did not exist, the
  82. nonexistant data set has been allocated; if you ran a real program, it would
  83. get a 213 ABEND when it tried to open.
  84.  
  85. At step termination, the system attempts to perform disposition processing,
  86. namely, DELETE.  In case (a), it will be scratched and uncataloged.  In case
  87. (b), the newly created data set will be deleted.  In either of these cases
  88. subsequent attempts to create a new version should succeed.  In case (c), the
  89. newly created duplicate is scratched; a subsequent attempt to create it should
  90. succeed (creating a new duplicate) and you will be able to catalog it.  In
  91. case (d) you will get the IEF283I dsn NOT DELETED 8 and also IEF283I dsn
  92. UNCATALOGED 8, and the data set will be uncataloged.  Subsequent attempts to
  93. allocate and catalog it should succeed.
  94.  
  95. All of the above assumes that SMS isn't affecting the process...you said these
  96. were non-SMS volumes, I'm not sure if SMS still gets in there...
  97. Also, in case (b) you could fail in allocation if there wasn't enough informatio
  98. n
  99. (SPACE, for example) to allocate the new data set.
  100.  
  101. Now, suppose that you specified UNIT and VOL on the DD statement.  Since
  102. volume information is available, MOD is treated (for allocation/disposition
  103. purposes) like OLD.  And, the data set won't be uncataloged at step
  104. termination, because it wasn't referenced via the catalog.  So, (a) will
  105. result in the catalog entry remaining, (b) gets NOT DELETED 8, (c) scratches
  106. it (if it was on the specified vol.), (d) gets NOT DELETED 8 but doesn't
  107. remove the catalog entry.  You now also have a case (e) where the data set is
  108. on some other volume.  You'll get NOT DELETED 8 and of course will still have
  109. the catalog entry, if there was one.
  110.  
  111. >It is unacceptable to rewrite these job streams to also include a TSO
  112. >batch step that issued HDELETEs for all these same DSNs.
  113.  
  114. Lotsa luck.  If you find the behavior of MVS allocation/disposition services
  115. unacceptable, your only alternative is to use a program that does do what you
  116. want.  Batch TSO might be a solution.  I wrote a program to scratch and
  117. uncatalog a file, so I could make it fail cleanly (and with return code) when
  118. the file wasn't there.
  119.  
  120. It does seem odd that HSM would leave you with data sets and catalog entries
  121. out of sync.  Perhaps there is an HSM guru out there who can enlighten us...
  122.  
  123. To:  IBM-MAIN@RICEVM1.BITNET
  124.