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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.