Как связать бэкэнд PID с приложением Windows? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть база данных postgres, к которой подключены два процесса Windows.Один из них - скрипт powershell, другой - приложение ac #.Оба процесса выполняются на одном и том же ящике, обращающемся к одной и той же базе данных.

У меня иногда возникают проблемы с блокировкой, проверка в pg_locks выдаст заблокированные и блокирующие pids.

Если я загляну в диспетчер задач Windows, я вижу, что оба этих pids имеют имя процесса 'postgres.exe'

Как определить, какой pid относится к процессу poweshell, а какойк приложению c #?

1 Ответ

0 голосов
/ 19 октября 2018

Приложение (или скрипт) может сообщить вам свой pid с помощью функции pg_backend_pid()

select pg_backend_pid();

В качестве альтернативы, вы можете установить различные параметры application_name в своих приложениях и отчетеэто с использованием pg_stat_activity, например:

set application_name to 'my_distinct_name';

select l.*, a.application_name
from pg_locks l
join pg_stat_activity a using (pid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...