Problem Note 13931: "File does not exist" error message and problems accessing remote VIEWs
in concatenated library
When a remote library is defined so that it references another remote
libref via the LIBNAME concatenation syntax, SAS VIEWs that are created
in the remote library might not be accessible from the client session.
This is due to a problem with the underlying code identifying the
proper entity to lock (although this might not readily be evident).
The problem does not happen if the use of concatenation is avoided.
An example of the problem can be shown as follows:
signon rmt sascmd="!sascmd";
rsubmit;
libname rlib (work);
data vue / view=vue;
set sashelp.class(obs=3);
run;
endrsubmit;
libname rlib server=rmt;
data _null_;
set rlib.vue;
put _all_;
run;
The above program will fail when the RLIB.VUE view is referenced in
the DATA _NULL_ step, generating an error message:
ERROR: File RLIB.VUE.DATA does not exist.
There are at least two ways to circumvent the problem, both of which
require the removal of library concatenation on the server. The first
uses the SLIBREF= option on the client LIBNAME statement to directly
refer to the library in which the view resides:
rsubmit;
data vue / view=vue;
set sashelp.class(obs=3);
run;
endrsubmit;
libname rlib server=rmt slibref=work;
data _null_;
set rlib.vue;
put _all_;
run;
The second method changes the way the server library is defined so
that it directly points to the physical location of the primary
library:
rsubmit;
libname rlib "%sysfunc(pathname(work,lib))";
data vue / view=vue;
set sashelp.class(obs=3);
run;
endrsubmit;
libname rlib server=rmt;
data _null_;
set rlib.vue;
put _all_;
run;
Either approach works, but the second allows the use of the RLIB
libref elsewhere in the server code if necessary. Either approach
can still use the underlying server libref (WORK, in this case).
NOTE: The above examples use the remote server's WORK libref for
clarity (such as permitting the use of single-level data set names),
but the same results would occur if another libref was referred to
via concatenation in the server's LIBNAME statement and the VIEW
definition, such as the following:
libname foo "C:\mypath";
data foo.vue / view=foo.vue;
set sashelp.class(obs=3);
run;
libname rlib (foo);
A similar problem exists for remote views under SAS/SHARE;
see SAS Note #013932 .
A fix for SAS 9.1.3 (9.1 TS1M3) for this issue is available at:
http://www.sas.com/techsup/download/hotfix/e9_sbcs_prod_list.html#013931
Operating System and Release Information
SAS System | SAS/CONNECT | 64-bit Enabled AIX | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows XP Professional | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows NT Workstation | 9.1 TS1M0 | |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Enterprise Edition | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Standard Edition | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Datacenter Edition | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows 2000 Server | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows 2000 Professional | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows 2000 Advanced Server | 9.1 TS1M0 | 9.2 TS1M0 |
Microsoft Windows 2000 Datacenter Server | 9.1 TS1M0 | 9.2 TS1M0 |
64-bit Enabled Solaris | 9.1 TS1M0 | 9.2 TS1M0 |
z/OS | 9.1 TS1M0 | 9.2 TS1M0 |
64-bit Enabled HP-UX | 9.1 TS1M0 | 9.2 TS1M0 |
Linux | 9.1 TS1M0 | 9.2 TS1M0 |
HP-UX IPF | 9.1 TS1M0 | 9.2 TS1M0 |
OpenVMS Alpha | 9.1 TS1M0 | 9.2 TS1M0 |
Tru64 UNIX | 9.1 TS1M0 | 9.2 TS1M0 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2006-10-31 08:25:11 |
Date Created: | 2004-12-03 09:53:01 |