SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 13931: "File does not exist" error message and problems accessing remote VIEWs in concatenated library

DetailsHotfixAboutRate It
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

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemSAS/CONNECT64-bit Enabled AIX9.1 TS1M09.2 TS1M0
Microsoft Windows XP Professional9.1 TS1M09.2 TS1M0
Microsoft Windows NT Workstation9.1 TS1M0
Microsoft® Windows® for 64-Bit Itanium-based Systems9.1 TS1M09.2 TS1M0
Microsoft Windows Server 2003 Enterprise Edition9.1 TS1M09.2 TS1M0
Microsoft Windows Server 2003 Standard Edition9.1 TS1M09.2 TS1M0
Microsoft Windows Server 2003 Datacenter Edition9.1 TS1M09.2 TS1M0
Microsoft Windows 2000 Server9.1 TS1M09.2 TS1M0
Microsoft Windows 2000 Professional9.1 TS1M09.2 TS1M0
Microsoft Windows 2000 Advanced Server9.1 TS1M09.2 TS1M0
Microsoft Windows 2000 Datacenter Server9.1 TS1M09.2 TS1M0
64-bit Enabled Solaris9.1 TS1M09.2 TS1M0
z/OS9.1 TS1M09.2 TS1M0
64-bit Enabled HP-UX9.1 TS1M09.2 TS1M0
Linux9.1 TS1M09.2 TS1M0
HP-UX IPF9.1 TS1M09.2 TS1M0
OpenVMS Alpha9.1 TS1M09.2 TS1M0
Tru64 UNIX9.1 TS1M09.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.