We have installed a product that will require us to modify the logical
SYS$SYSROOT. SYS$SYSROOT is already assigned the search list
"$DKA0:[SYS0.],SYS$COMMON". My question is whether or not it is
dangerous to be redefining SYS$SYSROOT to add another logical to the
end of the search list.
Also, where should it be done? (SYLOGICALS.COM?)
> My question is whether or not it is dangerous to be redefining SYS$SYSROOT
> to add another logical to the end of the search list.
"dangerous" is a subjective, and somewhat emotive term. It's usually
applied in product safety situation to describe acts which can lead to
physical harm. For instance "it is dangerous to drive a car without
wearing seatbelts". In that sense, I cannot say that changing the
SYS$SYSROOT logical name is "dangerous" as it's most unlikely to cause
your workstation to explode or anything physically dangerous!
Since search lists are processed strictly left to right, adding a
logical name to the right can have no effect on matches which are already
occurring. It will only influence file specs which do not find a match
in the existing search list. Therefore it is unlikely to interfere with
the normal operation of OpenVMS.
Consider that the new entry should point to a directory tree which
contains *all* the same directories as SYS$SPECIFIC and SYS$COMMON,
otherwise some "no such file" errors will become "no such directory".
Further, errors currently reported as:
"cannot find file SYS$COMMON:[SYSxxx]SOMEFILE"
will become
"cannot find file YOUR_ROOT:[SYSxxx]SOMEFILE"
I suppose this could be confusing to people used to seeing SYS$COMMON
in this context. In extreme, there may be software which analyses error
message strings and gets confused? (I doubt it). Finally, every failing
file search will take one extra step - a minor amount of extra
processing, but in some cases it may be significant (again, I doubt it).
>Also, where should it be done? (SYLOGICALS.COM?)
Simple answer is "before it is used". Since SYLOGICALS.COM is the
earliest executed command procedure that you are "allowed" to modify,
it must be prior to use. It's also intended for defining logical names
so it's the logical (sorry! :) choice.
Make sure the logical name is defined in the system table at EXECUTIVE
mode. You must have both SYSNAM and SYSPRV privileges to do this.
It is important to remember that, although the change you propose is
extremely unlikely to cause any problems, you should "back out" the
change prior to performing any product installations or upgrades. I
have seen cases where product IVPs fail to execute when SYS$SYSROOT
is not defined correctly (though, addmittedly in those cases the
foreign logical name was at the *front* of the search list).