Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / cookie и глюки / 14 сообщений из 14, страница 1 из 1
08.12.2014, 15:19
    #38828141
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
Поискав в этой ветки, такой проблемы не нашел.
У меня периодически у пользователей, да и у меня возникают "глюки от куков". :)
Например я по ссылке перехожу в карточку клиента "ПЕТРОВ" из интерактивного репорта по ссылке,а попадаю в карточку "ИВАНОВа". Ссылка вида - f?p=&APP_ID.:303:&SESSION.::&DEBUG.::P303_TABLE_ID:#TABLE_ID#
Проблема не в одной конкретной странице, случаются "глюки" и на других страницах.
Чистка куков помогает, но при чем тут куки, понять не могу. logout login не помогает.
Воспроизвести "глюк" невозможно, он сам появляется периодически у кого то, тем самым затрудняет решение проблемы.
Есть мысли что за беда? Как это лечится? Куда копать? Может браузер в какой то момент решает, что буду вытягивать страницу их кеша и не буду ее тянуть с сервера?
OS: linux, Oracle 11gr2, APEX 4.2.5, OHS (Oracle HTTP server)
...
Рейтинг: 0 / 0
08.12.2014, 16:01
    #38828188
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangel,
в отладке-логе видно в первых строках как присваивается ID из урл.
Я где-то писал, что если парам=null, то переменная целевой страницы не очищается. Что странно.
Всё равно надо отлавливать ошибку.
Как определил что куки помогают, если воспроизвести не удаётся?
...
Рейтинг: 0 / 0
08.12.2014, 16:06
    #38828192
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
Petro123,
Да очень просто, чищу куки, жму Ф5, вылетаю из приложения, логинюсь, открываю точно так же карточку ПЕТРОВа и попадаю к ПЕТРОВу, как и положено.
Спустя неделю, две три опять глюк, открывают счет номер 12345, а открывается номер 54321, чищу куки, ошибка пропадает.
...
Рейтинг: 0 / 0
08.12.2014, 16:32
    #38828224
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangel,
- урл на рабочий стол
- добавить флаг очистки ДАННОЙ страницы
- мне помогает во всех бяках со страницей.
Пусть ловят баг и дадут тебе лог
...
Рейтинг: 0 / 0
08.12.2014, 16:54
    #38828252
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
мне при глюках с кэшем помогает
before header
Код: sql
1.
2.
3.
4.
begin
  if :PXXXX_ID is null then
    apex_application.g_notification := PCONST.MESS_NO_URL_PARAM;
  end if;
...
Рейтинг: 0 / 0
10.12.2014, 09:56
    #38829844
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangel,

Где описание механизма, как у вас фетчится карточка, откуда берется имя пользователя, и как с ними связана P303_TABLE_ID ?
Хрустального шара у меня нету.

Конечно, куки и браузерный кеш не причем (если не мудрили с ними специально).
Там всё что угодно может быть:

- Запрос возвращает несколько строк, берется первая

- Вьюшки с контекстами, которые неправильно инициализируются, без знания архитектуры апекса

- написана своя Sentry Function, с ошибкой

- Состояние сессии старое остается (а хранится оно в таблицах oracle!), если в этом дело, тогда самое простое - очищать состояние сессии, указав номер страницы в 6-м параметре url указанной выше ссылки

- Ошибка в коде (в 15-й строке)
...
Рейтинг: 0 / 0
10.12.2014, 12:07
    #38830012
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
SvDev,

Фетчится автоматическим процессом по первичному уникальному ключу P303_TABLE_ID.


Конечно, куки и браузерный кеш не причем (если не мудрили с ними специально).
[/quote]
Не мудрил, но почему после очистки помогает?

SvDev- Запрос возвращает несколько строк, берется первая

Нет, возвращает одну

SvDev- Вьюшки с контекстами, которые неправильно инициализируются, без знания архитектуры апекса

- написана своя Sentry Function, с ошибкой

Не знаю про что Вы.

SvDev- Состояние сессии старое остается (а хранится оно в таблицах oracle!), если в этом дело, тогда самое простое - очищать состояние сессии, указав номер страницы в 6-м параметре url указанной выше ссылки

Как вариант, только прямой взаимосвязи все равно не вижу.

SvDev- Ошибка в коде (в 15-й строке)

В каждой страницы кода фетча.
...
Рейтинг: 0 / 0
10.12.2014, 12:42
    #38830054
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
А вообще остаточной сессией нужно будет покопать, спасибо.
...
Рейтинг: 0 / 0
10.12.2014, 14:57
    #38830250
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangelпочему после очистки помогает?

Потому что после очистки кукисов браузер текущую сессию забывает, тем самым устанавливает новую сессию

blkangelSvDev- написана своя Sentry Function, с ошибкой

Не знаю про что Вы.

Функция, которая в том числе занимается сопоставлением кукисов и существующей сессией в url

blkangelSvDev,

Фетчится автоматическим процессом по первичному уникальному ключу P303_TABLE_ID.

Если карточка вычисляется из обычной таблицы стандартным апексным фетчем, и тип source у items, исключительно DATABASE COLUMN, тогда пока вижу только вариант с сохранением старой сессии, и это должно легко воспроизодиться.

А вот если у вас что-то более сложное, тогда запросто при ошибках в коде можно получить такой непостоянный эффект.
Например, если старое значение остаётся в одном items со сложной логикой вычисления, потом используется при фетче - легко лечится очисткой состояния сессии.

или, если приоритет выполнения процессов одинаковый или неопределен, процессы могут срабатывать в разном порядке, ломая задуманную вами логику.

в любом случае в пакете apex_debug есть всё необходимое, чтобы собрать отладочную информацию, даже если вы не можете воспроизвести ошибку.
...
Рейтинг: 0 / 0
10.12.2014, 15:11
    #38830273
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
SvDev,
Перед автоматическим фетчем есть присвоение P303_TABLE_ID из переменной приложения. Кстати может в ней вина.
Если не трудно подскажите где апекс хранит значения переменных приложения?

А вообще теперь есть куда копнуть.
...
Рейтинг: 0 / 0
10.12.2014, 15:33
    #38830302
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangel,

apex_xxxxx.wwv_flow_data (только не вздумайте в коде приложения использовать)

blkangelПеред автоматическим фетчем есть присвоение P303_TABLE_ID из переменной приложения. Кстати может в ней вина.
Переменная приложения - item ?
Тогда непонятно, зачем вы её в url передаете,
то что устанавливается через url, устанавливается на очень ранней стадии, соответственно получается у вас переприсваивается.
...
Рейтинг: 0 / 0
10.12.2014, 16:42
    #38830456
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
SvDevПеременная приложения - item ?
Тогда непонятно, зачем вы её в url передаете,
то что устанавливается через url, устанавливается на очень ранней стадии, соответственно получается у вас переприсваивается.
Переменная приложения - application item
потому что я сократил промежуточное звено в постановке проблемы, в УРЛ у меня присваивается переменная приложения, а на странице из переменной приложения переменная страницы.
...
Рейтинг: 0 / 0
10.12.2014, 17:06
    #38830489
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangel,

Видимо, значит, всё дело в этом промежуточным звене.
Как и где устанавливается имеет значение.

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

В последний раз, например, у меня была ситуация, когда Application Computation, хотя он был один, выполнялся то до, то после каких-то процессов висящих на той же точке выполнения.

Если непонятно где ошибка, значит нужно собрать отладочную информацию через apex_debug.
...
Рейтинг: 0 / 0
10.12.2014, 17:46
    #38830538
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cookie и глюки
blkangelSvDevПеременная приложения - item ?
Тогда непонятно, зачем вы её в url передаете,
то что устанавливается через url, устанавливается на очень ранней стадии, соответственно получается у вас переприсваивается.
Переменная приложения - application item
потому что я сократил промежуточное звено в постановке проблемы, в УРЛ у меня присваивается переменная приложения, а на странице из переменной приложения переменная страницы.
imho я бы не использовал глобальных переменных. Тем более в урл.
Хотя у самого парочка есть (вместо http.referer), но не в урл.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / cookie и глюки / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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