If anyone is interested: The problem is that SAS locks the formats.sas7bcat file on the file system level, even if reading it from a read-only library, if the CATCACHE option is set to anything other than 0. That SAS does this does not make sense to me at all. Example: Set this in your config file and start sas: CATCACHE=3K Specifies the number of SAS catalogs to keep open in cache memory. Then run this code: libname lib_ro "[path to your formats directory]" ACCESS=READONLY; proc datasets library=lib_ro memtype=(catalog); copy out=work; select formats; run; Now open resource monitor in windows and search associated handles for formats.sas7bcat. You will find that SAS has locked the file. Exit sas. Now search handles again, you will find that the lock is now released. Then exit SAS, set the catcahe option to 0: CATCACHE=0 Specifies the number of SAS catalogs to keep open in cache memory. And do the same proc datasets again, and check handles - this time the file is not locked. I understand the need to lock a file if it's going to be written to. But locking a file that you're not going to write to does not make sense to me.
... View more