powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Возможно ли найти сессию, которая создана php-функцией oci_connect?
13 сообщений из 13, страница 1 из 1
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39892766
konst55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Веб-интерфейс к базе, пользователи коннектятся с разными учетными данными, воможно ли где-то в оракле увидеть эти сессии? Или, хотя бы, если там используется некий пул или один коннект на нескольких клиентов как найти этот коннект в v$session?

Версия сервера 11.2.0.1, Database Resident Connection Pooling inactive
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39892786
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
docs.oracle.com Database Reference V$SESSION
V$PROCESS


Анализировать поля
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
OSUSER
PROCESS
MACHINE
MODULE
OCUSER
CLIENT_INFO
PROGRAM
TERMINAL
...



Часть информации можно устанавливать программно

Для некоторых версий oracle client, часть полей остаётся пустыми (bug)
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39892968
Тролин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konst55,

BEGIN
DBMS_APPLICATION_INFO.set_client_info(client_info => 'PHP Web Client');
END;
/
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893037
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
konst55,

Да, они нормальные сессии и прекрасно видны, но если долго выполняются. Другой вопрос в том, что зачастую запрос выполняется очень быстро и ты просто не успеваешь поймать его в сессиях. Если сильно интересно, чем занималась сессия, то можно поставить триггер на logon с включением трассировки и затем смотреть трассировочные файлы.
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893135
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Помимо установки упомянутых выше module, action, client info, id, советую ещё создавать несколько разных сервисов и логически разделять коннекты по ним. Это даст не только удобные статистики в разрезе сервисов, но и возможность установки разных параметров для них или даже переноса нагрузки разных типов в случае физического разделения единого стендэлон сервера на несколько
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893339
konst55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, действительно, это обычные соединения просто очень быстро выполняющиеся, поэтому собственно эта тема и появилась, после того как я понаблюдал за v$session в динамике вопрос отпал.
Правда появился другой: словили в базе ошибку ora-4068 и у клиентов веб-интерфейса эта ошибка не исчезала до тех пор пока они не закрывали окно браузера. При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере, но свое состояние сессия тем не менее сохраняла - ведь выбрасывала все ту же ошибку. Как это работает?
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893349
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konst55,

это вы невовремя пакет с внутренним состоянием (пакетными переменными) перекомпилили. вот использующие его сессии и обижались, пока вы их не позакрывали.
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893351
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konst55
При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере

ну а это, скорее всего, вам просто показалось...
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893354
konst55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...
konst55,

это вы невовремя пакет с внутренним состоянием (пакетными переменными) перекомпилили. вот использующие его сессии и обижались, пока вы их не позакрывали.


да, причина этой ошибки ясна, не ясно пока как сделать так, чтобы клиенты ее не заметили
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893355
konst55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...
konst55
При этом как видно: каждое обновление страницы веб-интерфейса вызывало новую сессию на сервере

ну а это, скорее всего, вам просто показалось...


поясните пожалуйста, я видел коннекты от клиента httpd, которые были всего лишь в одном запросе, при следующем селекте из v$session этих коннектов уже не было - были другие от httpd, либо вообще не было сессий от этого клиента, именно это я интерпретировал как создание новой сессии каждый раз, возможно я не прав
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893379
konst55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл сказать что у меня кластер, соответственно селект я делаю к gv$session.

Провел небольшие наблюдения за собственными сессиями из веб-интерфейса из вьюшки gv$active_session_history по user_id и выяснил, что session_id моих обновлений в браузере страниц веб-интерфейса разные, значит oracle поддерживает состояние для каждого пользователя независимо от его сессий, с другой стороны: если это так, то каким образом на это влияет закрытие и открытие веб-интерфейса в браузере, ведь там тупо каждый раз при обновлении страницы вызывается oci_connect с логин/паролем сохранненным в пхпшной сессии, а когда происходит выход из интерфейса сбарсывается сессионная кука и пользователь вводит еще раз те же самые логин/пароль. чет совсем запутался...
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39893490
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konst55,

ищите сессию, которая не меняется при рефреше и убивается при закрытии браузера.

способов же борьбы не слишком много. самый простой - держать пакетные переменные в пакете, который не перекомпилируете. или таки насильно перелогиниваться пэхапой, если такая ошибка возникает. естественно, с переинициализацией пакетных переменных.
...
Рейтинг: 0 / 0
Возможно ли найти сессию, которая создана php-функцией oci_connect?
    #39894089
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходил мимо...
насильно перелогиниваться пэхапой, если такая ошибка возникает.

Зависит от того, что хранится в состоянии пакета.
Если оно не требует специальной (т.е. за пределами текущего вызова) инициализации, то можно и просто retry операции.
Но только с клиента, oracle не сбросит состояние пакета/не перевалидирует его, пока -4068 не улетит к клиенту.
DocId 1161225.1
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Возможно ли найти сессию, которая создана php-функцией oci_connect?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]