|
|
|
Сессии для pg_advisory_unlock_shared
|
|||
|---|---|---|---|
|
#18+
Небольшой скромный и глупый вопрос,откуда должен браться номер сессии для использования его в pg_advisory_unlock_shared(key1 int, key2 int)? у меня есть 2 pid'а из скрипта,нужно вытянуть их номера сессий? И если я предположим сниму лок у этих сессиий, то все скрипты исполняемые под этой сессией потеряют Lock На свои таблицы? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 16:48 |
|
||
|
Сессии для pg_advisory_unlock_shared
|
|||
|---|---|---|---|
|
#18+
Strippett, Там не номер сессии, а то, что было выбрано разработчиками в качестве ключа. Скажем, я блокировал объекты по их первичному ключу. Что у вас используется — надо код смотреть. Возможно `pg_locks` показывает то, что нужно (не смотрел никогда). Блокировки отпускаются когда вы заканчиваете транзакцию. advisory блокировки бывают сессионные, т.е. живут вне транзакций (rollback не "отпускает" блоки). Снять блокировки чужой сессии можно только оборвав её через: pg_terminate_backend() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 00:16 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=83&tid=1996910]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 317ms |

| 0 / 0 |
