[mod.computers.vax] search lists

CHAA006%vaxb.rhbnc.ac.uk@Cs.Ucl.AC.UK.UUCP (01/29/87)

>>>	$ define/system/exec/translat=concealed psy$local -
>>>		_dua0:[local.],dub0:[local.]

>>> This definition works correctly when reading files from either
>>> physical disk, but if an attempt is made to write to the second disk
>>> in the search path, the write fails....
>>> This happens consistently. Anyone have any answers?

Sounds like the defined behaviour to me.  As I understand it, one can _read_
from all members of a search list, but only _write_ to the first-named (DEC's
interpretation of primogeniture ?).  ** Phil.

Philip Taylor (Royal Holloway & Bedford New College;  University of London; U.K)

Bitnet/NetNorth/Earn:	chaa006@vaxa.rhbnc.ac.uk (or) chaa006%rhbnc.vaxa@ac.uk
       (or)	    :	chaa006@vaxb.rhbnc.ac.uk (or) chaa006%rhbnc.vaxb@ac.uk

       Arpa	    :	chaa006%vaxa.rhbnc.ac.uk@ucl-cs.arpa
       (or) 	    :	chaa006%vaxb.rhbnc.ac.uk@ucl-cs.arpa

hamm@WAKS.RUTGERS.EDU.UUCP (01/29/87)

>>	$ define/system/exec/translat=concealed psy$local -
>>		_dua0:[local.],dub0:[local.]

>>  This definition works correctly when reading files from either
>>  physical disk, but if an attempt is made to write to the second disk
>>  in the search path, the write fails....
>>  This happens consistently. Anyone have any answers?

> Sounds like the defined behaviour to me.  As I understand it, one can _read_
> from all members of a search list, but only _write_ to the first-named (DEC's
> interpretation of primogeniture ?).  ** Phil.

> Philip Taylor (Royal Holloway & Bedford New College;  University of London; U.K)
  
I think Phil is right about this, but it *is* extremely difficult to find
this out from the documentation.  If you follow the indexing path through
the DCL Dictionary, Guide to File Applications, etc., you find lots of
instructions about how to *specify* search lists, but all of the examples
involve *reading* files, not writing them.  There are all sorts of uses
of DIRECTORY, TYPE, etc., but not even a simple CREATE.

It seems reasonable that writing to a file whose location involves a search
list will result in that file being written to the first valid location
found.  However, in the case originally cited, the specified directory
*did not exist* on the first device specified on the search list, but did
exist on the second device.  Reasonable behaviour here would be to write
the file on the second device, especially in view of this statement in the
"Guide to VAX/VMS File Applications" (section 5.2.3):

    When a search list is used, RMS ignores certain errors as it searches
    for a matching file:  Invalid device name (RMS$_DEV); Device not ready
    or mounted (RMS$_DNR); **Directory not found (RMS$_DNF)**; File not
    found (RMS$_FNF); Privilege violation (RMS$_PRV).

I can't find any statement that this applies on read only, but I'm no
RMS wizard.

Can anyone point us all to a place in the manual set which defines what
search lists are supposed to do upon write?  

Greg Hamm
Rutgers Molecular Biology Computing Lab

hamm@biovax.bitnet
hamm@waks.rutgers.edu

------

S211KENO@HTIKHT5.BITNET.UUCP (02/26/87)

It appears DCL-commands handle search-lists in a different way.
The following DCL-commands are an example.
The OPEN command behaviour is very confusing, it tells you it can't
find the directory while it should end up with a privilege violation,
like the TYPE command does.
 
$ sh log useral
   "USERAL" = "SYS$LOGIN_DEVICE:" (LNM$SYSTEM_TABLE)
        = "USER01:"
        = "USER02:"
        = "USER03:"
        = "USER04:"
        = "USER05:"
        = "USER06:"
        = "USER10:"
1  "SYS$LOGIN_DEVICE" = "USER01:" (LNM$JOB_803AFF90)
2  "USER01" = "KUBHC1$DUA1:" (LNM$SYSTEM_TABLE)
1  "USER01" = "KUBHC1$DUA1:" (LNM$SYSTEM_TABLE)
1  "USER02" = "KUBHC1$DUA2:" (LNM$SYSTEM_TABLE)
1  "USER03" = "KUBHC1$DUA0:" (LNM$SYSTEM_TABLE)
1  "USER04" = "KUBHC1$DUA7:" (LNM$SYSTEM_TABLE)
1  "USER05" = "KUBHC1$DUA6:" (LNM$SYSTEM_TABLE)
1  "USER06" = "KUBHC1$DUA8:" (LNM$SYSTEM_TABLE)
1  "USER10" = "KUBHC1$DUA10:" (LNM$SYSTEM_TABLE)
 
$ type useral:[s211.kees]ident.com
%TYPE-W-OPENIN, error opening USER01:[S211.KEES]IDENT.COM;2 as input
-RMS-E-PRV, insufficient privilege or file protection violation
$ open/read tmp user01:[s211.kees]ident.com
%DCL-E-OPENIN, error opening USER01:[S211.KEES]IDENT.COM; as input
-RMS-E-PRV, insufficient privilege or file protection violation
$ open/read tmp useral:[s211.kees]ident.com
%DCL-E-OPENIN, error opening USER10:[S211.KEES]IDENT.COM; as input
-RMS-E-DNF, directory not found
-SYSTEM-W-NOSUCHFILE, no such file
 
Have I missed something in the documentation (I studied DCL-dictionary
and File applications) or is there anybody who could explain this ?
 
--------------
Kees Noyens
Tilburg University
Netherlands