[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference clt::cms

Title:DEC Code Management System
Notice:Current version: V3.8-2 (see Note 3.2)
Moderator:EDSDS6::TOWNSEND
Created:Mon Feb 03 1986
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2491
Total number of notes:9373

2476.0. ""-CMS-E-NOSRCHLST"; Search List Exclusion?" by XDELTA::HOFFMAN (Steve, OpenVMS Engineering) Mon Mar 31 1997 15:59


CMS> set lib vms$:[shadowing.cms]
%CMS-E-NOREF, error referencing VMS$:[SHADOWING.CMS]
-CMS-E-NOSRCHLST, search lists are not allowed in this context
%CMS-W-UNDEFLIB, library is undefined
CMS>


    Why aren't search lists allowed?  (This seems entirely
    arbitrary, and I've got a situation where I'd prefer to
    use a searchlist.)  I can understand that it would be
    "messy" were there access to modules within seperate CMS
    libraries across multiple translations, but that's not
    what I'm planning here...

    I'm looking to occasionally substitute an entire CMS library
    for another within a (test) build -- the substitute library
    would be a complete copy of the first (baseline) CMS library,
    with some updates. 

    Unfortunately, I now have to add some DCL in front of the
    SET LIBRARY (CMS$LIB) definition, in order to work around
    the "not allowed in this context" check.

T.RTitleUserPersonal
Name
DateLines
2476.1Example Of The NOSRCHLST Error...XDELTA::HOFFMANSteve, OpenVMS EngineeringMon Mar 31 1997 18:3434
   Here's one way to generate the -CMS-E-NOSRCHLST error...
   OpenVMS Alpha V7.1, but I don't think that matters...

$ cms show vers
CMS Version V3.8-2
$ def foolist sys$sysdevice:[hoffman.SCRATCH.X.],sys$sysdevice:[hoffman.SCRATCH.Y.]
$ sho log foolist
   "FOOLIST" = "SYS$SYSDEVICE:[HOFFMAN.SCRATCH.X.]" (LNM$PROCESS_TABLE)
        = "SYS$SYSDEVICE:[HOFFMAN.SCRATCH.Y.]"
$ cms set lib foolist:[foo]
%CMS-E-NOREF, error referencing FOOLIST:[FOO]
-CMS-E-NOSRCHLST, search lists are not allowed in this context
%CMS-W-UNDEFLIB, library is undefined
$ sho log foolist
   "FOOLIST" = "SYS$SYSDEVICE:[HOFFMAN.SCRATCH.X.]" (LNM$PROCESS_TABLE)
        = "SYS$SYSDEVICE:[HOFFMAN.SCRATCH.Y.]"
$ dir foolist:[foo]

Directory SYS$SYSDEVICE:[HOFFMAN.SCRATCH.X.][FOO]

00CMS.CMS;1         01CMS.CMS;1         01CMS.HIS;1

Total of 3 files.

Directory SYS$SYSDEVICE:[HOFFMAN.SCRATCH.Y.][FOO]

00CMS.CMS;1         01CMS.CMS;1         01CMS.HIS;1

Total of 3 files.

Grand total of 2 directories, 6 files.

$
2476.2EDSDS6::GLEASONDaryl Gleason, DECset EngineeringWed Apr 02 1997 16:4511
    Hi Steve,
    
    From what I can tell in looking at the code and its comments, it looks
    like the design decision to disallow search lists was made due to the
    possible confusion that might arise when CMS goes to locate its
    library, history, and element data files. Personally, I'm not sure that
    I would fault their reasoning. Supporting search lists in this way
    could lead to some very difficult support situations at the very least!
    :-)
    
    -- Daryl
2476.3Is this not a SL ?TLE::MATTHESWed Apr 02 1997 17:2021
Hi Daryl,

If I create 3 libraries and then set library to them:

$ cms set lib [.cmsa], [.cmsb], [.cmsc]
%CMS-I-LIBIS, library is PERFOM_USER8$:[MATTHES.CMSA]
%CMS-I-LIBINSLIS, library PERFOM_USER8$:[MATTHES.CMSB] inserted at end of library list
%CMS-I-LIBINSLIS, library PERFOM_USER8$:[MATTHES.CMSC] inserted at end of library list
%CMS-S-LIBSET, library set
-CMS-I-SUPERSEDE, library list superseded
$ cms sho lib
Your CMS library list consists of:
   PERFOM_USER8$:[MATTHES.CMSA]
   PERFOM_USER8$:[MATTHES.CMSB]
   PERFOM_USER8$:[MATTHES.CMSC]
   

What is the difference between that and what Steve is trying to do ??

Fred
2476.4EDSDS6::GLEASONDaryl Gleason, DECset EngineeringWed Apr 02 1997 18:3717
    Hi Fred,
    
    What you're doing is using CMS to define a search list of libraries. No
    problem; CMS knows how to handle that quite well.
    
    What I think Steve is trying to do, on the other hand, is to use DCL to
    define a search list of *files* (which just happen to be CMS libraries,
    hopefully) and then instruct CMS to use that search list to find its
    associated internal files as if it were a single CMS library. What CMS
    would normally do with a search list like this is to treat the search
    list logical as a list of libraries (and not as a single library).
    However, the problem that Steve is encountering stems from the use of
    rooted directory specs. CMS apparently won't allow them in a search
    list even if they're concealed and/or terminal.
    
    -- Daryl
    
2476.5*Not* Looking To Split Up CMS Library Across Searchlist...XDELTA::HOFFMANSteve, OpenVMS EngineeringThu Apr 03 1997 19:3827
:    What I think Steve is trying to do, on the other hand, is to use DCL to
:    define a search list of *files* (which just happen to be CMS libraries,
:    hopefully) and then instruct CMS to use that search list to find its
:    associated internal files as if it were a single CMS library.

   Not quite.

   I'm trying to operate a set of CMS *libraries*, and be able to
   "swap" another complete CMS library into the "front" of the SET
   LIBRARY command for testing or similar purposes.  I'm looking
   to use a searchlist logical name for this, as that's what
   searchlists are for...

   We have hundreds of related CMS libraries for specific products,
   and all related libraries are located in the same root -- it's
   via this root logical name that I'm trying to add a searchlist;
   another translation...

   I'm *not* attempting to "slice and dice" the contents of a CMS
   library across multiple searchlist translations, and I would not
   expect CMS to deal with that situation...

   I'm ending up with a translation hack -- one that finds out which
   translation of the searchlist contains the library, and passes
   just that to the SET LIBRARY command -- which is effectively a
   variation of what was mentioned back in .1.

2476.6EDSDS6::GLEASONDaryl Gleason, DECset EngineeringThu Apr 03 1997 20:106
    Thanks for the clarification, Steve. If you like, I can raise this as a
    wish; I agree that it would be nice if CMS could do this. All that
    would be needed would be to devise a way to allow what you want to do
    while disallowing the potential for spaghetti library syndrome.
    
    -- Daryl
2476.7SMOP in RMS :-)XDELTA::HOFFMANSteve, OpenVMS EngineeringFri Apr 04 1997 13:3114
:    Thanks for the clarification, Steve. If you like, I can raise this as a
:    wish; I agree that it would be nice if CMS could do this...

    Please do.

:  ...All that would be needed would be to devise a way to allow what you
:  want to do while disallowing the potential for spaghetti library syndrome.

    Without looking at the CMS code, I'd base the location of the rest
    of the library off the returned path to the root 01CMS.CMS file.
    (RMS can quite easily return this information via the RSA/ESA buffers
    and associated pointers, and would thus be able to pass it back where
    CMS can later use it...)

2476.8EDSDS6::GLEASONDaryl Gleason, DECset EngineeringFri Apr 04 1997 15:5718
>Please do.
    
    Done. This is CMS wish #68.
    
>Without looking at the CMS code, I'd base the location of the rest of the
>library off the returned path to the root 01CMS.CMS file. (RMS can quite
>easily return this information via the RSA/ESA buffers and associated
>pointers, and would thus be able to pass it back where CMS can later use
>it...)
    
    Actually, if I'm understanding you correctly, in this kind of situation
    all we want is for CMS to look at only the first element in the search
    list to resolve its file references; the rest of the list should be
    ignored. How difficult this would be to implement would depend on the
    pains taken by the original developers to preclude the use of
    unqualified rooted logicals in search lists.
    
    -- Daryl
2476.9Searchlist Processing...XDELTA::HOFFMANSteve, OpenVMS EngineeringFri Apr 04 1997 17:3722
:    Actually, if I'm understanding you correctly, in this kind of situation
:    all we want is for CMS to look at only the first element in the search
:    list to resolve its file references; the rest of the list should be
:    ignored. How difficult this would be to implement would depend on the
:    pains taken by the original developers to preclude the use of
:    unqualified rooted logicals in search lists.

   CMS would need to perform a standard RMS file access based on the
   specification -- if a searchlist, RMS would implicitly look for the
   specified file in each translation of the searchlist until a match
   is found or until no more translations are available.  On a match,
   CMS would then need to use the RMS-returned device and directory
   specification for all subsequent library accesses.

   In other words, what I'm after might _not_ have the matching entry
   in the first translation of the searchlist...  (That's not usually
   how one uses a searchlist...  For a more general example, consider
   how OpenVMS uses the SYS$SYSROOT searchlist to locate node-specific
   (SYS$SPECIFIC) files in preference to VMScluster-common (SYS$COMMON)
   files, but will transparently use files in SYS$COMMON if no files in
   SYS$SPECIFIC are matched...)

2476.10EDSDS6::GLEASONDaryl Gleason, DECset EngineeringFri Apr 04 1997 18:333
    Ah, yes, of course. Sorry for not grasping this sooner. :-)
    
    -- Daryl