Нахождение PID, ответственного за «ОШИБКА: блокировка недоступна для» - PullRequest
0 голосов
/ 12 февраля 2019

В системах UNIX, если блокировка файла удерживается, сообщение об ошибке включает в себя PID, например:

ERROR: A lock is not available for XXX.XXXX.

ERROR: Lock held by process 4653302.

Для окон виновный процесс не предусмотрен.Есть ли способ узнать, кто заблокировал стол?Я не могу войти в систему, однако на сервере включен XCMD.

FWIW, опция FILELOCKWAIT здесь не помогает (это длительная блокировка).

РЕДАКТИРОВАТЬ: Я не являюсь администратором, и я не могу загрузить сторонние инструменты

1 Ответ

0 голосов
/ 12 февраля 2019

wmic предоставляет почти все, что вы хотите о том, что происходит в Windows.

win32_process расскажет вам (если у вашей учетной записи правильные параметры политики) о том, кто чем управляет.Найти SASers и позвонить им?

Пример: Proc IMPORT не может прочитать канал, поэтому сначала сохраните вывод wmic в файл.

%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;

Получите 47 единиц информации о каждом процессе SAS,

Если у вас нет разрешений, ИТ-отделу придется их предоставлять или связываться с вами так часто, что в конечном итоге они получат:)

...