powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX и Global Temporary Table
10 сообщений из 10, страница 1 из 1
APEX и Global Temporary Table
    #36873558
Darkripple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день. ситуация следующая:
в приложении активно используются global temporary table, с расчетом на то, что пользователи не будут видеть данные друг друга. но проверка показала, что APEX со своим apex_public_user-ом создает всего одну сессию БД на всех и, соответственно, разные пользователи работающие в приложении на разных машинах по сути пользуются одними данными.

как можно этого избежать? не хотелось бы отказываться от GTT или добавлять в них поля типа идентификатор apex-сессии.
как можно заставить апекса создавать каждый раз новую сессию к БД при коннекте очередного пользователя?
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36873729
organiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkripple,

Возможно Вам подойдет механизм коллекций в APEX.

Using Collections

APEX_COLLECTION

Пример реализации: Sample Applications -> Collection Showcase
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36873784
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkripple,

на самом деле APEX и создаёт каждый раз новую сессию. Только не при "коннекте очередного пользователя", а при каждом отображении и при каждой обработке страницы, а также при обращении к БД через AJAX. Так что проблемой для Вас будет сохранить данные во временной таблице от одного соединения к следующему.

Как уже сказали, используйте коллекции APEX.

PS: Интересно, как проводилась проверка, раз Вы увидели только одну сессию APEX_PUBLIC_USER.
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36874089
Darkripple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
коллекции апекса не очень подходят, так как среда работы будет не только апексовая, и хотелось создать единобезобразную схему запоминания параметров.
suPPLerна самом деле APEX и создаёт каждый раз новую сессию suPPLerИнтересно, как проводилась проверка, раз Вы увидели только одну сессию APEX_PUBLIC_USERпроверка проводилась так:
запускалось приложение на одной машине. делался запрос в БД
select SID,SERIAL#, CLIENT_INFO from v$session vv where username = 'APEX_PUBLIC_USER'
запоминался sid и serial. потом запускалось приложение на другой машине из под другого пользователся. повторялся запрос. sid и serial оставались теми же. поменялся только CLIENT_INFO.
потом запускалось совсем другое приложение. результат тот же.
то есть такое ощущение что он вообще держит одну сессию на всех.
suPPLerТак что проблемой для Вас будет сохранить данные во временной таблице от одного соединения к следующему в том то и дело, что проблема в обратном.
запускаю приложение на одной машине. вставляю в GTP пару записей. запускаю приложение на другой машине - и вывожу содержимое таблицы - те самые две записи.
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36874103
Darkripple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не "GTP", а "GTT", опечатолся (:
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36875491
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkripple,

я упростил. :) APEX использует соединения типа shared server . Набор серверных процессов обрабатывает запросы набора клиентских процессов без постоянного соответствия 1-к-1 процесса из первого набора процессу из второго (как это работает в dedicated server connections ). Серверные процессы могут создаваться/уничтожаться во время работы экземпляра, если это необходимо. Поэтому принято не заморачиваться и считать, что при обращении к БД APEX открывает каждый раз новое соединение, stateless connection. Между этими соединениями нельзя рассчитывать ни на что, связанное с конкретным соединением: глобальные переменные пакетов, не-глобальные пользовательские контексты, сегменты GTT...

PS: Интересно, сколько у Вас серверных процессов?
Код: plaintext
select name, value from v$parameter where name like '%shared_servers';
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36875943
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,

по-моему АПЕКС использует тот тип сервера, который настроен.
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36876016
Darkripple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerPS: Интересно, сколько у Вас серверных процессов? запрос выдал
Код: plaintext
shared_servers    	 1 
suPPLerМежду этими соединениями нельзя рассчитывать ни на что, связанное с конкретным соединениемясно, вобщем засада-подстава. придется отказаться от GTT и юзать обычную таблицу со ссылкой на сессию..
...
Рейтинг: 0 / 0
APEX и Global Temporary Table
    #36877847
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрите на это:

Using Virtual Private Database (VPD) in an HTML DB Application
http://www.oracle.com/technology/products/database/application_express/html/vpd.html

возможно, вам очень подойдет
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
APEX и Global Temporary Table
    #39522587
shurikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прикольно, дословный перевод этой темы у буржуев:
http://www.progtown.com/topic610853-apex-and-global-temporary-table.html
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX и Global Temporary Table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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