2013 and I am having this same problem. XP SP3. SAS 9.3 TS Level 1MO.
My troubles started last year, possibly when a windows update was applied. (Automatic updates are required where I work). I've since removed SAS v9.1 and installed a newer version (9.3) but the problem continues. Other co-workers using win7 report no trouble. Makes me think it's XP related.
If I run my programs 1 data step or 1 proc at a time, all works fine. When I try to run my entire program in 1 submit, it generates the error most of the time but not always?. An immediate re-Submit may or may not generate the error. and so on.
No Diskeeper. No UNC's. Have full read/write/create/delete access to the temporary folder on my C drive. Plenty of disk space.
I opened up My Computer to monitor the files in the SAS created temporary folder which reveals the work.filename in question is still locked from the previous DATA step or data set modifying procedure. This is 100% consistent, locked file = error. It is like XP can't keep up with SAS creates/writes. I wonder if SAS is multi threading to speed up and is getting ahead of the operating system's writing and closing of the file before SAS tries to open it again. Is there an option to turn on/off multitasking? Or is there some XP setting to write files immediately instead of buffering writes? Note that SAS generates a random name for that temporary folder for each session so you can't make a shortcut for it.
To see the .lck filename extension added to the temporary work.filename you may need to change My Computer view settings:
My Computer, Tools, Folder Options, View tab, unselect "Hide extensions for known file types"
and to see the temp work folders:
My Computer, Tools, Folder Options, View tab, select "Display the contents of system folders"
I tried to use a "LOCK work.filename CLEAR" statement but the resulting SAS error suggest I can only unlock files that I locked, not files locked by SAS.
I added a RUN statement at the end of every DATA step so I can submit each data step or PROC separately for debugging.
The most reliable fix is to modify my programs so I create a new data set with each and every data step and proc sort.
Log from a recent failed run:
581 DATA a;
582 INFILE "m:\rpaulos\bone\data\wave123456\2013.02.21.summary.txt"
583 DLM="," DSD PAD MISSOVER FIRSTOBS=2 LRECL=5000;
584 INFORMAT today mmddyy10.;
585 FORMAT today mmddyy10.;
586 LENGTH DayOfWeek WeekDayend WamStartTime CSAfilename WamMode $ 15;
587 LENGTH WamSerial $ 20;
588 INPUT Id Wave Today DayOfWeek WeekDayEnd WamStartTime WamSerial WamMode
588! CsaFilename DayOn DayOff
589 ReadingCount DailySum TimeWorn TimeNotWorn
590 MovementsGt0 Movements0to99 MovementsGt99
591 SedentaryMovements LightMovements ModerateMovements
591! VigorousMovements ExtremeMovements
592 Average AverageGT0 AverageGT99
593 SedentarySum LightSum ModerateSum VigorousSum ExtremeSum
594 BoutSedentary10 BoutSedentary20 BoutModerate5 BoutModerate10
595 AMon AMoff AMsum AMTimeWorn AMTimeNotWorn
596 AMMovementsGT0 AMMovements0to99 AMMovementsGT99
597 AMSedentaryMovements AMLightMovements AMModerateMovements
597! AMVigorousMovements AMExtremeMovements
598 AMAverage AMAverageGT0 AMAverageGT99
599 AMSedentarySum AMLightSum AMModerateSum AMVigorousSum AMExtremeSum
600 MMon MMoff MMsum MMTimeWorn MMTimeNotWorn
601 MMMovementsGT0 MMMovements0to99 MMMovementsGT99
602 MMSedentaryMovements MMLightMovements MMModerateMovements
602! MMVigorousMovements MMExtremeMovements
603 MMAverage MMAverageGT0 MMAverageGT99 MMSedentarySum MMLightSum
603! MMModerateSum MMVigorousSum
604 MMExtremeSum
605 PMon PMoff PMsum PMTimeWorn PMTimeNotWorn
606 PMMovementsGT0 PMMovements0to99 PMMovementsGT99
607 PMSedentaryMovements PMLightMovements PMModerateMovements
607! PMVigorousMovements PMExtremeMovements
608 PMAverage PMAverageGT0 PMAverageGT99
609 PMSedentarySum PMLightSum PMModerateSum PMVigorousSum PMExtremeSum
609! ;
610 RUN;
NOTE: The infile "m:\rpaulos\bone\data\wave123456\2013.02.21.summary.txt" is:
Filename=m:\rpaulos\bone\data\wave123456\2013.02.21.summary.txt,
RECFM=V,LRECL=5000,File Size (bytes)=7077230,
Last Modified=21Feb2013:13:21:24,
Create Time=21Feb2013:13:15:36
NOTE: 12051 records were read from the infile
"m:\rpaulos\bone\data\wave123456\2013.02.21.summary.txt".
The minimum record length was 475.
The maximum record length was 638.
NOTE: The data set WORK.A has 12051 observations and 98 variables.
NOTE: DATA statement used (Total process time):
real time 2.56 seconds
cpu time 0.79 seconds
611 *** count number of days per subject & wave ***;
612 PROC SORT;
613 BY wave id DESCENDING today;
614 RUN;
NOTE: There were 12051 observations read from the data set WORK.A.
NOTE: The data set WORK.A has 12051 observations and 98 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 0.17 seconds
cpu time 0.17 seconds
615 DATA a;
616 SET a;
617 BY wave id;
618 RETAIN DayCount;
619 IF FIRST.id THEN DayCount = 0;
620 DayCount = Daycount + 1;
621 RUN;
NOTE: There were 12051 observations read from the data set WORK.A.
NOTE: The data set WORK.A has 12051 observations and 99 variables.
NOTE: DATA statement used (Total process time):
real time 0.15 seconds
cpu time 0.15 seconds
622 *** resort ***;
623 PROC SORT ;
624 BY wave id today;
625 RUN;
NOTE: There were 12051 observations read from the data set WORK.A.
NOTE: The data set WORK.A has 12051 observations and 99 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 0.78 seconds
cpu time 0.17 seconds
626 *** assign dayscount to all obs per person per wave ***;
627 DATA a;
628 SET a;
629 BY wave id;
630 RETAIN DaysCount;
631 IF first.id THEN DaysCount = dayCount;
632 RUN;
NOTE: There were 12051 observations read from the data set WORK.A.
NOTE: The data set WORK.A has 12051 observations and 100 variables.
ERROR: Rename of temporary member for WORK.A.DATA failed.
File may be found in C:\DOCUME~1\rpaulos\LOCALS~1\Temp\SAS Temporary
Files\_TD3436_PH-WL-2205-RP_.
NOTE: DATA statement used (Total process time):
real time 0.15 seconds
cpu time 0.15 seconds
Have you gone through all of the SAS notes related to this problem? I found at least 8 with a simple search including this:
http://support.sas.com/kb/14/246.html - I assume you have Modify or Full Control access on your WORK folder.
Also I would recommend you raise a track with SAS Support.
I am also having this same issue. My program in 10,000+ lines, and about 3/5 times it will produce this exact error, but if I run it in pieces it does not. Surely SAS must be doing something about this and there is some kind of fix?
-If so many people are experiencing the same problem, it seems like a memory management issue internal to SAS. Has there been any progress by the SAS team on resolving this issue?
Thanks
I suggest you refer to my response to rickpaulos. If the existing SAS notes don't help, then raise a track with SAS Support as they are the best avenue for this type of problem. Are you also running Windows XP like the others with this problem?
I have confronted this problem these days and settled up successfully. Using operating system of either Win 7 profession, inclusive of both 32- and 64-bit, leads to random error as processing massive commands (in my case, macro). Now my two PCs are installed with Window 8 professional and Window 7 home premium and no longer have the problem.
I had the same problem. It was my backup software (Carbonite). I think SS was trying to delete or rename while Carbonite was copying. I paused Carbonite and the problem went away.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.