Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сессии apex / 25 сообщений из 29, страница 1 из 2
14.09.2013, 01:18
    #38396582
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Возможно ли сопоставить сессию APEX и сессию ORACLE
...
Рейтинг: 0 / 0
15.09.2013, 13:58
    #38397007
fghfgh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
maxandsoft,

если я правильно вас понял то APEX_CUSTOM_AUTH.GET_USERNAME
...
Рейтинг: 0 / 0
17.09.2013, 19:16
    #38399311
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
apex похоже использует пулл сессий и они у него свои, меня интересует сопоставление с v$session
...
Рейтинг: 0 / 0
17.09.2013, 22:35
    #38399428
fgfgfg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
maxandsoft,

тот же пакет
...
Рейтинг: 0 / 0
18.09.2013, 17:19
    #38400549
Сессии apex
maxandsoftapex похоже использует пулл сессий и они у него свои, меня интересует сопоставление с v$session
у апекса нет никакого пула. пул коннектов - у веб-сервера. сессии у апекса - это записи в таблице wwv_flow_sessions$
Вы поясните нафига вообще это надо?
...
Рейтинг: 0 / 0
18.09.2013, 17:24
    #38400558
Сессии apex
да, и еще хочу добавить, что сопоставить можно только тогда, когда сессия оракла в состоянии "ACTIVE", иначе реально она ничья
Код: sql
1.
select CLIENT_INFO from v$session where username='APEX_PUBLIC_USER' and status='ACTIVE'


в колонке "CLIENT_INFO" будет "session_id:user_id"
...
Рейтинг: 0 / 0
04.10.2013, 17:01
    #38417191
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Трудяга Биггерmaxandsoftapex похоже использует пулл сессий и они у него свои, меня интересует сопоставление с v$session
у апекса нет никакого пула. пул коннектов - у веб-сервера. сессии у апекса - это записи в таблице wwv_flow_sessions$
Вы поясните нафига вообще это надо?


Я за создателя топика отвечу:)

При работе в APEX ( например, добавление строк) также в таблицы добавляются переменные сессии. И сейчас возникают такие ошибки, когда пользователь отошел от компа, а другой в это время работает. И когда первый пользователь возвращается, его данные добавляются с переменными сессии от второго пользователя. То есть человек создает, например, задачу от имени другого пользователя.

Я не уверена что сессии Oracle и Apex можно сопоставлять, я думаю о варианте собственной аутентификации с созданием новой сессии... Но пока не разобралась до конца, сработает ли это.

Если подбросите идеи и материалы, буду благодарна!
...
Рейтинг: 0 / 0
05.10.2013, 18:21
    #38417763
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Nenormalka,

Сопоставить сессию можно для текущего запроса, т.е. либо для page rendering, либо для page processing.
А предсказывать, какой сессия оракла будет в следующий раз вам зачем?
...
Рейтинг: 0 / 0
07.10.2013, 10:00
    #38418510
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev, Не совсем поняла, вы считаете что сессия каждый раз разная, на новой странице?
И не совсем поняла ваш вопрос о следующей сессии оралка, я ничего такого вроде предсказывать не собиралась...
...
Рейтинг: 0 / 0
07.10.2013, 10:18
    #38418530
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev, на счет сессий Oracle

авторА предсказывать, какой сессия оракла будет в следующий раз вам зачем?

Мы используем свое API через которое создаем сессию, при создании сессии глобальным переменным PL/SQL присваиваются значения которые нужны в течении всей работы с приложением (переменные окружения), нам нужно не предсказания, а именно сессия Oracle которая была открыта при запуске APEX приложения о как
...
Рейтинг: 0 / 0
07.10.2013, 11:09
    #38418619
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
maxandsoft,

Начните с основ
2.4 Understanding Session State Management

А так же с понимания того, что такое stateless protocol.
...
Рейтинг: 0 / 0
07.10.2013, 11:56
    #38418680
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Если коротко, то да, при выполнении page rendering или page processing появляется новое соединение (с учетом, что бранчи зачастую возвращаю редирект пользователю и создают таким образом новое соединение) и уже http sever решает, создавать новую сессию или использовать старую. Но даже если используется старая сессия, насколько я помню там все равно состояние сессии сбрасывается явно какой-то оракловой процедурой.
...
Рейтинг: 0 / 0
07.10.2013, 11:59
    #38418688
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDevmaxandsoft,

Начните с основ
2.4 Understanding Session State Management

А так же с понимания того, что такое stateless protocol.
Это я прежде всего написал Nenormalka, ну и maxandsoft тоже
...
Рейтинг: 0 / 0
07.10.2013, 12:10
    #38418711
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
+ еще читать тут
http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35125/sec_dev.htm#CHDDAJHF About Session State and Security
Oracle Application Express persists session state in database tables. Session state is
preserved in database tables because it is more secure to store the session state on the
server side than on the client. Because Oracle Application Express applications use the
stateless HTTP protocol, an application's session state across multiple page views is
preserved in database tables. Not maintaining a synchronous database connection for
each Oracle Application Express application user significantly lessens memory and
database resource requirements.
...
Рейтинг: 0 / 0
07.10.2013, 20:29
    #38419437
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev,

Да спасибо. Вы правы.
...
Рейтинг: 0 / 0
10.10.2013, 14:17
    #38422954
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev, Я правильно понимаю что код устанавливаемый в Security Attributes -> Database Session -> Initialization PL/SQL Code , будет выполняться при двух этих процессах: page rendering и page processing. И позволит мне таким образом контролировать переменные сессии?
...
Рейтинг: 0 / 0
10.10.2013, 16:24
    #38423219
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
NenormalkaSvDev, Я правильно понимаю что код устанавливаемый в Security Attributes -> Database Session -> Initialization PL/SQL Code , будет выполняться при двух этих процессах: page rendering и page processing. И позволит мне таким образом контролировать переменные сессии?
Правильно понимаете, в справке все написано

Use this attribute to enter a PL/SQL block that sets a context for the database session associated with the current "show page" or "accept page" request.

"show page" request = вызов page rendering
"accept page" request = вызов page processing

Но, для стандартных задач инициализации переменных для конкретных хранимых процедур, что вызываются с апексных страниц, лучшим вариантом будет использовать стандартные механизмы: items, collections, устанавливать переменные пакеты и сессию уже там где нужно, в хранимых процедурах или в страничных процессах, дабы не сваливать в кучу левую логику в одно поле.
...
Рейтинг: 0 / 0
10.10.2013, 16:31
    #38423244
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Даже в триггерах и то можно обращаться к сессии апексной, например

Код: plsql
1.
nvl(v('USER'),user)
...
Рейтинг: 0 / 0
11.10.2013, 10:36
    #38424070
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev, да это я понимаю. Спасибо большое за помощь!
...
Рейтинг: 0 / 0
22.10.2013, 13:53
    #38436886
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev,

Опять нужна ваша помощь. Создаю нашу сессию (запись в таблице просто) , и заполняю переменные глобальные значением этой сессии. И почему то переменные перезаписываются...

Заполняю их в единственном месте, там где создаю сессию: в Authentication Scheme, в функции которая вызывается после аутентификации(Post-Authentication Procedure Name). Maximum Session Length in Seconds и Maximum Session Idle Time in Seconds стоит сейчас 0 ( то есть бесконечность).

Я думала что APEX теперь не будет терять сессию сам, и надо будет самостоятельно логинится и разлогинится. И соответственно войдет в мою процедуру (Post-Authentication Procedure Name) только один раз (пользователи оч редко сами перелогиниваются).


На самом деле это не так, я вижу что APP_USER тот что нужно, но мои переменные сбиваются. И как я понимаю именно потому что create_session далеко не один раз в пост-логине вызывается:(


Хочу еще дополнить что у нас используется KERBEROS для логина.
...
Рейтинг: 0 / 0
22.10.2013, 20:00
    #38437552
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
NenormalkaЯ думала что APEX теперь не будет терять сессию сам, и надо будет самостоятельно логинится и разлогинится. И соответственно войдет в мою процедуру (Post-Authentication Procedure Name) только один раз (пользователи оч редко сами перелогиниваются).
Не понял про что вы. APEX не теряет своей сессии (значений items/apex collections и нек. др. своих установок) просто так, неважно какую схему аутентификации вы используете. Ввиду архитектуры теряется сессия ORACLE (состояния пакетов и установки оракловой сессии, то что устанавливалось напрямую).

Аутентификация в приложении APEX к аутентификации ORACLE не имеет никакого отношения.
Post-Authentication срабатывает 1 раз после Authentication в апексе, который вызывается явно процедурами типа apex_custom_auth.login и как правило вызывается пользователем 1 раз.
Еще есть dads аутентификация, там она в каждом запросе может вызываться автоматически, но это уже из другой оперы.
...
Рейтинг: 0 / 0
23.10.2013, 09:31
    #38437867
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev, вроде нашла, оказывается есть дополнительная функция аутентификации(кастомная) и она срабатывает перед каждым заходом на страницу (Page Sentry Function). Так что пока ковыряюсь в ней...
...
Рейтинг: 0 / 0
23.10.2013, 12:55
    #38438206
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
Nenormalka,

И вовсе Sentry Function - это никакая не функция аутентификации
...
Рейтинг: 0 / 0
24.10.2013, 10:55
    #38439426
Nenormalka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сессии apex
SvDev,

Вы меня не так поняли. Я знаю что она не для того. Но так вышло что у нас для этого используется. Чего я собственно и не ожидала)
...
Рейтинг: 0 / 0
24.10.2013, 11:58
    #38439582
Сессии apex
SvDevИ вовсе Sentry Function - это никакая не функция аутентификации
ну... не совсем.. да, она проверят валидность сессии, но одновременно может использоваться и для аутентификации

NenormalkaЯ знаю что она не для того. Но так вышло что у нас для этого используется. Чего я собственно и не ожидала)
да всё нормально, так можно. например, при прозрачной NTLM-аутентификации (перед каждым запросом проверяя переменную "REMOTE_USER").
вобщем, я 100 раз так делал :)
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сессии apex / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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