Reputation: 12691
On UNIX systems, if a file lock is held, the error message includes a PID, eg:
ERROR: A lock is not available for XXX.XXXX.
ERROR: Lock held by process 4653302.
For windows, the guilty process is not provided. Is there a way I can find out who locked the table? I cannot log onto the machine, however the server does have XCMD enabled.
FWIW, the FILELOCKWAIT option is not helpful here (it's a long running lock).
EDIT: I am not an administrator, and I cannot download third party tools
Upvotes: 0
Views: 2067
Reputation: 27508
wmic
provides almost anything you want about the goings on in Windows.
win32_process
will tell you (if your account has the proper policy settings) all about who is running what. Find the SASers and call em up ?
Example: Proc IMPORT
can't read a pipe, so save the wmic
output to a file first.
%let wmic_cmd = wmic path win32_process where "description like '%nrstr(%%sas.exe%%)'";
filename whosas pipe
"%superq(wmic_cmd) get /format:csv | findstr /r /v ""^$"" > c:\temp\wmic_whosas.txt"
;
data _null_;
infile whosas;
input;
run;
proc import dbms=csv datafile="c:\temp\wmic_whosas.txt" replace out=whosas;
run;
Should get you 47 pieces of info about each SAS process.
If you don't have permissions, IT will have to grant them, or get involved with you so often they eventually do :)
Upvotes: 1