0

I have a Load Module PDS (RECFM=U) which I have to convert to a Program Object PDSE. There is a member "xxxx" in the PDS which is ALIAS-OF member "yyyy" but "yyyy" does not exist in the PDS. When I try to copy the PDS to a PDSE this member is not copied and I receive the message "Alias xxxx cannot be copied due to missing Primary Member Name". I have tried all sorts of manipulations to get rid of the alias but haven't succeeded. Can anyone tell me how, in a batch JOB, to keep "xxxx" in the PDS without the reference to "yyyy"? If the alias could be removed then the PDS could be copied to a PDSE. Example Directory

The above directory shows my problem, just as described below by @zarchasmpgmr. ZMRALIAS has a TTR and is still pointing to ZMOALIAS even though it does not exist any more in the PDS. How can I get rid of the reference to ZMOALIAS?

Danny Amir
  • 11
  • 4
  • Have you tried to skip the orphaned alias by using `EXCLUDE MEMBER=(...)` in your IEBCOPY control-statements? – piet.t Jun 12 '17 at 06:10
  • Hi @piet.t, thanks for your comment. That does work, I can skip the orphan completely. The thing is that I need to keep the orphan but without the ALIAS pointer to the non-existant parent. – Danny Amir Jun 12 '17 at 11:36
  • What is an alias beyond the pointer to the non-existent member? So if you don't want to keep that "pointer" what is it that you want to copy? – piet.t Jun 12 '17 at 11:55
  • The directory entry "xxxx" is pointing to a load-module within the PDS. This is what I need to keep. The ALIAS name "yyyy" in the entry is what I'm trying to get rid of. – Danny Amir Jun 12 '17 at 12:33
  • Wait, the message you posted says "xxxx" is an alias pointing to a non-existent load-module "yyyy". So it's either you or the message that is wrong.... – piet.t Jun 12 '17 at 12:37
  • Sorry for being unclear. If I could post a jpg of the directory I think it would help, you know - one picture ... I'll see what I can do when I'm back at work in about 12 hours. – Danny Amir Jun 12 '17 at 19:25
  • The firewall at work restricts uploading images. I'll add an image to my original question from home tonight. – Danny Amir Jun 13 '17 at 08:09
  • So it sounds like "xxxx" has a full directory entry with a TTR pointing to what used to be module "yyyy", **and** is also marked as an alias of "yyyy", **but** the directory entry "yyyy" doesn't exist…as if "yyyy" was deleted but the aliases were not deleted as well. You'd like to remove the alias bit from "xxxx" and have it as a normal directory entry. Is this correct? – zarchasmpgmr Jun 13 '17 at 13:53
  • That's exactly correct, as you can now see from the Example Directory that I have added to the original question. Can you help? – Danny Amir Jun 13 '17 at 23:00
  • What I wonder is whether the actual load module still exists or if the alias is just pointing to nothing. Is it possible to run the module using the alias? If it doesn't there would be no use in converting it to a normal directory entry. – piet.t Jun 14 '17 at 06:10
  • The alias is callable. In the above example ZMBALIAS is a batch main that calls ZMRALIAS and ZMOALIAS. From the results I know that ZMRALIAS is executed from the above PDS and that ZMOALIAS from another PDS further down the STEPLIB. – Danny Amir Jun 14 '17 at 14:14
  • It's certainly possible to delete a PDS member, but not the alias. You might just be getting lucky in the sense that the deleted space will still have the old executable until someone comes along and compresses the dataset. Or, something more complex might have come along and left the directory in an odd state, such as you're seeing. If you have a vendor product like PDSMAN, this is easily fixed. If not, AMASPZAP is your friend - just dump the directory (it's mapped by IHAPDS), zap the alias bit off and you should be okay. – Valerie R Jul 06 '17 at 23:43
  • Thanks for the advice. Our systems programmer found the ZAP solution (I don't know exactly which tool he used to zap the alias bit off). We also found a workaround solution, by deleting the corrupted member and copying a version of the load module that doesn't have the alias from a different environment. – Danny Amir Jul 08 '17 at 00:29

0 Answers0