SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 19065: DISP is ignored in LIBNAME statement when existing allocation already exists

DetailsHotfixAboutRate It

In SAS® 9, SAS will usually re-use any external allocation of a library if you define a LIBNAME statement for that library. This is a change from prior releases of SAS in which SAS would create a separate allocation for each LIBNAME statement. This means that if you have an external allocation for a SAS library with a disposition of (OLD,KEEP), and you execute a libname statement with a DISP of (OLD,DELETE), then issue a LIBNAME CLEAR, the DELETE dispostion will be ignored. You may see a message like the following:

NOTE: Data set xxxxxx.TEST.SASLIB has not been deallocated because it was allocated externally.

You can circumvent this change by clearing the library definition using a LIBNAME CLEAR; statement, then assigning a fileref to the external file with the desired disposition and then clearing the fileref. For example:

/* end the use of the physical data set as a SAS library */ libname x001 clear; /* if library should be deleted, do the following: */ filename x002 '.test.saslib' disp=(old,delete); filename x002 clear; /* clean up & make sure library is gone: */ tso free dd(x001);

A hotfix is available which will cause SAS to honor a disposition of (OLD,DELETE) specified on the LIBNAME statement for a library data set that is already allocated, external to SAS, by the job or TSO session under which the SAS session is running.

Select the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemBase SASz/OS9.1 TS1M39.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.