Hi all,
I am facing an weird problem. I am creating a table from one process (sas session) and trying to delete that same table using a second process (sas session). These sas sessions are getting called using Java from interface.
Now in the second process when I am trying to delete the dataset it is telling that ERROR: Delete lock is not available for TMPLIB.SPOT_STATUS.DATA, lock held by another process.
But we are not locking this table in anywhere. The code used for deletion is:
proc datasets library=tmplib;
delete spot_status;
quit;
Could you please suggest a solution. Is it possible that some external process is locking the table and if yes then is there a way to track that process?
Thanks in advance for your help.
Thanks & Regards,
Saugata Mukherjee.
how do you ensure the creation is complete (and table closed) before second session attempts the delete?
What library engine is being used?
There are a number of ways in which to avoid this error and have a program wait for a lock to become available.
Here is one example paper that outlines a macro call %trylock
Play Nice with Others: Waiting for a Lock on SAS Table
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.