<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Lock Dataset but still get lock error in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606652#M176185</link>
    <description>&lt;P&gt;Based on the SAS log it appears that even though you issued a lock out of SAS there is another process still able to also lock the same file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;File locking as such is more complicated than one would think. The article&amp;nbsp;&lt;A href="https://gavv.github.io/articles/file-locks/" target="_self"&gt;here&lt;/A&gt;&amp;nbsp;should give you an idea.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From what I remember how things work conceptually (others might be able to explain this much better and technically correct):&lt;/P&gt;
&lt;P&gt;SAS respects locks and behaves accordingly but other non-SAS processes might not. So it looks like you're dealing with such a process. Ideally find out what this process does.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If something worked for long and then suddenly doesn't anymore: The question is always "what changed in the environment?". For what you describe with these "sometimes locking errors" my first suspect would be a virus scanner or an archiving process which locks the file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just as a thought and more a workaround than a real solution:&lt;/P&gt;
&lt;P&gt;Using option FILELOCKWAIT might get you over this speed-bump as it will prevent SAS to fail if there is a lock. You can eventually even get rid of the LOCK/UNLOCK statements at all when using FILELOCKWAIT.&lt;/P&gt;</description>
    <pubDate>Sat, 23 Nov 2019 04:08:55 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2019-11-23T04:08:55Z</dc:date>
    <item>
      <title>Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606579#M176153</link>
      <description>&lt;P&gt;I have some code that tries to lock a dataset, and upon successful locking will update said dataset.&amp;nbsp; It generally works, but I just got a message in my production process that it errored because it couldn't get the lock - even when the previous step showed it had a lock.&amp;nbsp; What am I missing?&amp;nbsp; This has been in place for a while and has worked just fine - looping until it could get a lock.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a snippet from that portion of the log:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %LET (variable name is J)&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable J resolves to 0&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable J resolves to 1&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %IF condition &amp;amp;j &amp;gt; 1 is FALSE&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %PUT trying to lock at &amp;amp;time&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable TIME resolves to 1:13:24&lt;/P&gt;&lt;P&gt;trying to lock at 1:13:24&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable DSN resolves to sched.status&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;&lt;STRONG&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; lock sched.status;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;&lt;STRONG&gt;NOTE: SCHED.STATUS.DATA is now locked for exclusive access by you.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %PUT syslckrc = &amp;amp;syslckrc&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable SYSLCKRC resolves to 0&lt;/P&gt;&lt;P&gt;syslckrc = 0&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %PUT sysrc=&amp;amp;syscc&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable SYSCC resolves to 0&lt;/P&gt;&lt;P&gt;sysrc=0&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %PUT syserr = &amp;amp;syserr&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable SYSERR resolves to 0&lt;/P&gt;&lt;P&gt;syserr = 0&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable SYSLCKRC resolves to 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The SAS System&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01:13 Wednesday, November 13, 2019&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %IF condition &amp;amp;syslckrc = 0 is TRUE&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable DSN resolves to sched.status&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; data sched.status;&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable DSN resolves to sched.status&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; set sched.status;&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable JOBNAME resolves to MARSDS_H_200&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; if JobName="MARSDS_H_200" then do;&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; LStatus=put(DateTime(),DateTime16.);&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; if rnstatus = 'YES' then do;&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; Cstatus = 'Pending Approval';&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; rnstatus = ' ';&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; else if complstatus='Complete' then CStatus='Complete';&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; else CStatus='Pending Approval';&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; call symput('status',left(trim(cstatus)));&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; call symput('lstatus',left(trim(lstatus)));&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008000"&gt;ERROR: A lock is not available for SCHED.STATUS.DATA.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008000"&gt;ERROR: Lock held by process 56791.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/P&gt;&lt;P&gt;ERROR: File SCHED.STATUS.DATA is not open.&lt;/P&gt;&lt;P&gt;WARNING: The data set SCHED.STATUS was only partially opened and will not be saved.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.02 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 494.28k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8612.00k&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/13/2019 01:13:23 AM&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Step Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Switch Count 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page Faults&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page Reclaims&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 235&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page Swaps&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Voluntary Context Switches&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Involuntary Context Switches&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Block Input Operations&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Block Output Operations&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %PUT clearing the lock&lt;/P&gt;&lt;P&gt;clearing the lock&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable DSN resolves to sched.status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008000"&gt;MPRINT(UPDATELST):&amp;nbsp;&amp;nbsp; lock sched.status clear;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008000"&gt;NOTE: SCHED.STATUS.DATA is no longer locked by you.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable SYSLCKRC resolves to 0&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable J resolves to 1&lt;/P&gt;&lt;P&gt;SYMBOLGEN: Macro variable MAXTRY resolves to 120&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): %DO %UNTIL() condition is TRUE; loop will not iterate again.&lt;/P&gt;&lt;P&gt;MLOGIC(UPDATELST): Ending execution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Nov 2019 21:24:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606579#M176153</guid>
      <dc:creator>cckesler</dc:creator>
      <dc:date>2019-11-22T21:24:33Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606651#M176184</link>
      <description>&lt;P&gt;That's odd indeed. Was the production process running with PID &lt;STRONG&gt;&lt;FONT color="#008000"&gt;56791&lt;/FONT&gt;&lt;/STRONG&gt;?&lt;/P&gt;</description>
      <pubDate>Sat, 23 Nov 2019 04:03:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606651#M176184</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-11-23T04:03:36Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606652#M176185</link>
      <description>&lt;P&gt;Based on the SAS log it appears that even though you issued a lock out of SAS there is another process still able to also lock the same file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;File locking as such is more complicated than one would think. The article&amp;nbsp;&lt;A href="https://gavv.github.io/articles/file-locks/" target="_self"&gt;here&lt;/A&gt;&amp;nbsp;should give you an idea.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From what I remember how things work conceptually (others might be able to explain this much better and technically correct):&lt;/P&gt;
&lt;P&gt;SAS respects locks and behaves accordingly but other non-SAS processes might not. So it looks like you're dealing with such a process. Ideally find out what this process does.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If something worked for long and then suddenly doesn't anymore: The question is always "what changed in the environment?". For what you describe with these "sometimes locking errors" my first suspect would be a virus scanner or an archiving process which locks the file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just as a thought and more a workaround than a real solution:&lt;/P&gt;
&lt;P&gt;Using option FILELOCKWAIT might get you over this speed-bump as it will prevent SAS to fail if there is a lock. You can eventually even get rid of the LOCK/UNLOCK statements at all when using FILELOCKWAIT.&lt;/P&gt;</description>
      <pubDate>Sat, 23 Nov 2019 04:08:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606652#M176185</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-11-23T04:08:55Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606654#M176187</link>
      <description>&lt;P&gt;See here&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://support.sas.com/resources/papers/proceedings17/1465-2017.pdf" target="_blank"&gt;https://support.sas.com/resources/papers/proceedings17/1465-2017.pdf&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;sadly.&lt;/P&gt;</description>
      <pubDate>Sat, 23 Nov 2019 04:18:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606654#M176187</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-11-23T04:18:32Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606669#M176196</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;gt;&lt;EM&gt; SAS respects locks and behaves accordingly&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;SAS does not apparently, see the link.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;gt;&lt;EM&gt;Using option FILELOCKWAIT might get you over this speed-bump&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Does SAS only try to access the file at the end of the waiting period? Or how often?&lt;/P&gt;</description>
      <pubDate>Sat, 23 Nov 2019 10:22:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606669#M176196</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-11-23T10:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606732#M176234</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for this link. That was news to me.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using Filelockwait SAS certainly retries frequently to access the file. If this trying exceeds the defined wait period then you'll get the locking error.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've been using Filelockwait regularly since its introduction especially for access to control tables (like job execution logging). I've never experienced unexpected behaviours even for situations with quite a few jobs executing in parallel reading/writing to a single control table.&lt;/P&gt;</description>
      <pubDate>Sat, 23 Nov 2019 23:51:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606732#M176234</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-11-23T23:51:50Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606790#M176265</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;&amp;nbsp; Using the &lt;FONT face="courier new,courier"&gt;filelockwait&lt;/FONT&gt; option certainly looks like it might be a better option than using the &lt;FONT face="courier new,courier"&gt;lock&lt;/FONT&gt; statement.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd be curious to stress-test it now in the manner described by Troy Martin Hughes in his paper.&lt;/P&gt;
&lt;P&gt;It could very well be that &lt;FONT face="courier new,courier"&gt;filelockwait&lt;/FONT&gt; use another locking mechanism than &lt;FONT face="courier new,courier"&gt;lock&lt;/FONT&gt;'s.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another approach to the one he's chosen (using flat files) would be to rename the data set, say from STATUS to STATUS_&amp;amp;PID._&amp;amp;TIMESTAMP.. If the rename is successful, the file is yours to update and then rename back.&lt;/P&gt;
&lt;P&gt;If the time stamp is too old, then the original session is deemed failed and other sessions can try to rename it for their own use.&lt;/P&gt;
&lt;P&gt;Just typing as it comes to mind...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Nov 2019 08:12:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606790#M176265</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-11-24T08:12:38Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606793#M176266</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Filelockwait&lt;/EM&gt; gave me back &lt;EM&gt;disp=wait&lt;/EM&gt; from the mainframe days which made me very happy.&lt;/P&gt;
&lt;P&gt;If you're doing serious stress testing then I'd be really interested what you find. I've done some stress testing in the past but it could have been more thorough. I never ever saw filelockwait behave in unexpected ways.&lt;/P&gt;</description>
      <pubDate>Sun, 24 Nov 2019 09:19:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606793#M176266</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-11-24T09:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606859#M176300</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;gt; If you're doing serious stress testing&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;I can't as I can't generate multiple sessions at the moment, but it's definitely a test I now want to do. We need a reliable and clean way for processes to lock/await tables.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Nov 2019 01:10:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606859#M176300</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-11-25T01:10:04Z</dc:date>
    </item>
    <item>
      <title>Re: Lock Dataset but still get lock error</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606863#M176302</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; - Excellent link. One great advantage of FILELOCKWAIT is its simplicity. The maximum value you can set is 10 minutes although I suspect that would be more than adequate for most purposes.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Nov 2019 01:38:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lock-Dataset-but-still-get-lock-error/m-p/606863#M176302</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2019-11-25T01:38:21Z</dc:date>
    </item>
  </channel>
</rss>

