|
Процедура SYSDBOPEN. Почему не все соединения с базой отлавливает?
|
|||
---|---|---|---|
#18+
На сервере создал процедуры и таблицы как описаны в статье https://www.ibm.com/developerworks/ru/library/dm-1109sysdbopen/. Проверил, как работает (под разными пользователями через dbaccess и через сервер студио соединялся с сервером). Все работает, все фиксируется. Добавил небольшой «кусок кода» Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Проверил как работает. Все работает, все фиксируется. Начал контролировать кто и когда подсоединялся к БД. И к своему удивлению заметил, что не все фиксируется этой процедурой. Делаю запрос к сессиям и вижу, что новые сессии появляются, но не все отображается в таблице sysdbopenuser Код: plsql 1. 2. 3.
Проверяю и сравниваю с запросом, который фиксирует подключение к БД в процедуре. Код: plsql 1.
но это в том случае, если во втором запросе закоментировать условие s.username = USER AND s.sid = DBINFO('sessionid'). Значит эта процедура не все соединения фиксирует. Подскажите пожалуйста, какой тип/вид соединений она не фиксирует и почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2017, 18:40 |
|
Процедура SYSDBOPEN. Почему не все соединения с базой отлавливает?
|
|||
---|---|---|---|
#18+
Сергей БWHERE who = USER так USER наверное внутри процедуры всегда = владельцу процедуры. Зачем там user вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2017, 22:56 |
|
Процедура SYSDBOPEN. Почему не все соединения с базой отлавливает?
|
|||
---|---|---|---|
#18+
В свое время пытались настроить ограничение на количество сессий с запросом только по sysmaster:syssessions проблем не было, ограничивало количество сессий корректно, если клиент не использует IFX_NODBPROC. Зачем делать связку с sysopendb? процедура и так отрабатывает только на этой БД. На сколько я понимаю, sysdbopen работает только в случае если БД открыта как database, во всяком случае на 11.70FC5 Если мы обращаемся к таблице с другой БД - sysdbopen не отрабатывает Т.е. запрос типа echo "select t1.* from systables t , mydb:systables t1 where t1.tabid=1 and t.tabid=t1.tabid " | dbaccess sysmaster на БД mydb не вызывает sysdbopen. Аналогично и для подзапроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2017, 23:16 |
|
|
start [/forum/topic.php?fid=44&msg=39491905&tid=1606766]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
116ms |
get tp. blocked users: |
1ms |
others: | 389ms |
total: | 600ms |
0 / 0 |