|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
Веб-интерфейс к базе, пользователи коннектятся с разными учетными данными, воможно ли где-то в оракле увидеть эти сессии? Или, хотя бы, если там используется некий пул или один коннект на нескольких клиентов как найти этот коннект в v$session? Версия сервера 11.2.0.1, Database Resident Connection Pooling inactive ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 11:50 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
docs.oracle.com Database Reference V$SESSION V$PROCESS Анализировать поля Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Часть информации можно устанавливать программно Для некоторых версий oracle client, часть полей остаётся пустыми (bug) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 12:13 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
konst55, BEGIN DBMS_APPLICATION_INFO.set_client_info(client_info => 'PHP Web Client'); END; / ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 14:57 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
konst55, Да, они нормальные сессии и прекрасно видны, но если долго выполняются. Другой вопрос в том, что зачастую запрос выполняется очень быстро и ты просто не успеваешь поймать его в сессиях. Если сильно интересно, чем занималась сессия, то можно поставить триггер на logon с включением трассировки и затем смотреть трассировочные файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 16:17 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
Помимо установки упомянутых выше module, action, client info, id, советую ещё создавать несколько разных сервисов и логически разделять коннекты по ним. Это даст не только удобные статистики в разрезе сервисов, но и возможность установки разных параметров для них или даже переноса нагрузки разных типов в случае физического разделения единого стендэлон сервера на несколько ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 19:17 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
Да, действительно, это обычные соединения просто очень быстро выполняющиеся, поэтому собственно эта тема и появилась, после того как я понаблюдал за v$session в динамике вопрос отпал. Правда появился другой: словили в базе ошибку ora-4068 и у клиентов веб-интерфейса эта ошибка не исчезала до тех пор пока они не закрывали окно браузера. При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере, но свое состояние сессия тем не менее сохраняла - ведь выбрасывала все ту же ошибку. Как это работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 14:19 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
konst55, это вы невовремя пакет с внутренним состоянием (пакетными переменными) перекомпилили. вот использующие его сессии и обижались, пока вы их не позакрывали. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 15:27 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
konst55 При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере ну а это, скорее всего, вам просто показалось... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 15:29 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
проходил мимо... konst55, это вы невовремя пакет с внутренним состоянием (пакетными переменными) перекомпилили. вот использующие его сессии и обижались, пока вы их не позакрывали. да, причина этой ошибки ясна, не ясно пока как сделать так, чтобы клиенты ее не заметили ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 15:47 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
проходил мимо... konst55 При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере ну а это, скорее всего, вам просто показалось... поясните пожалуйста, я видел коннекты от клиента httpd, которые были всего лишь в одном запросе, при следующем селекте из v$session этих коннектов уже не было - были другие от httpd, либо вообще не было сессий от этого клиента, именно это я интерпретировал как создание новой сессии каждый раз, возможно я не прав ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 15:49 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
Да, забыл сказать что у меня кластер, соответственно селект я делаю к gv$session. Провел небольшие наблюдения за собственными сессиями из веб-интерфейса из вьюшки gv$active_session_history по user_id и выяснил, что session_id моих обновлений в браузере страниц веб-интерфейса разные, значит oracle поддерживает состояние для каждого пользователя независимо от его сессий, с другой стороны: если это так, то каким образом на это влияет закрытие и открытие веб-интерфейса в браузере, ведь там тупо каждый раз при обновлении страницы вызывается oci_connect с логин/паролем сохранненным в пхпшной сессии, а когда происходит выход из интерфейса сбарсывается сессионная кука и пользователь вводит еще раз те же самые логин/пароль. чет совсем запутался... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 17:31 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
konst55, ищите сессию, которая не меняется при рефреше и убивается при закрытии браузера. способов же борьбы не слишком много. самый простой - держать пакетные переменные в пакете, который не перекомпилируете. или таки насильно перелогиниваться пэхапой, если такая ошибка возникает. естественно, с переинициализацией пакетных переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 00:56 |
|
Возможно ли найти сессию, которая создана php-функцией oci_connect?
|
|||
---|---|---|---|
#18+
проходил мимо... насильно перелогиниваться пэхапой, если такая ошибка возникает. Зависит от того, что хранится в состоянии пакета. Если оно не требует специальной (т.е. за пределами текущего вызова) инициализации, то можно и просто retry операции. Но только с клиента, oracle не сбросит состояние пакета/не перевалидирует его, пока -4068 не улетит к клиенту. DocId 1161225.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2019, 16:54 |
|
|
start [/forum/topic.php?fid=52&msg=39893349&tid=1881820]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 140ms |
0 / 0 |