Data set aliases have confused people for a long time.

There are two basic kinds of aliases, user catalog connector aliases and data set aliases.

Let's start with user catalog connector aliases. These are the ones where what is specified on RELATE is a user catalog. User catalog connector aliases in the master catalog are used to establish "catalog orientation." That's a fancy way of saying, "Which catalog will be searched for this data set?"

It's important to understand that z/OS has a 2-level catalog structure at most. Thus, only those user catalog connector aliases that are in the system's current *master* catalog will be used. You can have all the user catalog connector aliases you want in user catalogs; the system will cheerfully ignore them all.

Back to orientation. Suppose I have alias ABC and I point it to MY.USER.CATALOG by running this IDCAMS command: DEFINE ALIAS(NAME(ABC) RELATE(MY.USER.CATALOG)) to define it in my master catalog. Now, any search for ABC."anything" will be directed to MY.USER.CATALOG; if the data set entry cannot be resolved within the entries found in that same catalog, the attempt to locate the data set will fail.*

OK so far? Now, let's suppose I want to find ABC.SOME.THING by the name DEF.SOME.THING via the catalog structure. I can define a data set alias named DEF.SOME.THING and related it to ABC.SOME.THING. However, since the data set entry for ABC.SOME.THING is in MY.USER.CATALOG, the data set alias entry has to be there as well for me to find it--because once Catalog gets to MY.USER.CATALOG, it won't search in other places. So, I will need to issue: DEFINE ALIAS(NAME(DEF.SOME.THING) RELATE(ABC.SOME.THING) CATALOG(MY.USER.CATALOG))

I will also need MY.USER.CATALOG to be searched for names starting with DEF to set the scope of the search (the "orientation") so that the ABC.SOME.THING entry can eventually be found. So, I will *also* need to issue: DEFINE ALIAS(NAME(DEF) RELATE(MY.USER.CATALOG))

So now, when I look for DEF.SOME.THING, Catalog finds the alias named DEF, and uses it to orient the search to MY.USER.CATALOG. Catalog finds DEF.SOME.THING and sees that it's an alias. Because the search *remains oriented to* MY.USER.CATALOG, it looks for (and finds) the related-to entry for ABC.SOME.THING and all is well.

(* Let's leave SYMBOLICRELATE out of it for now, until we all understand the basics. Likewise, we can work our way up to what happens before Catalog processes aliases and PATHENTRY entries for VSAM data seats, if necessary.)

I hope this helps, a bit.

--
John Eells
IBM Poughkeepsie
[email protected]

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to