Общедоступное приложение Oracle APEX Срок действия вашего сеанса истек

#oracle #oracle-apex

Вопрос:

Я создал общедоступное приложение в Oracle Apex 20.1

Я установил управление сеансами таким образом —gt; gt;управление сеансами

Приложение не имеет аутентификации, и каждая страница является общедоступной.

К сожалению, в журналах приложений я обнаружил много ошибок с сообщением о том, что срок действия вашей сессии истек. Это происходит несколько раз в одно и то же время. В столбце «пользователь» вместо «никто» указано нулевое значение.

Журналы из приложения

Я был бы признателен за любой совет, как исправить мое приложение

Ответ №1:

Это ожидаемое поведение, в вашем приложении нет ничего плохого. Каждый рендеринг страницы в apex является сеансом — это также верно для общедоступных страниц. Для пользователя установлено значение «никто», указывающее, что сеанс не аутентифицирован. Когда пользователь оставляет свой браузер открытым, в конечном итоге время сеанса истекает.

Вы можете увеличить время простоя сеанса в разделе Общие компоненты gt; Атрибуты безопасности, но время ожидания сеансов все равно будет увеличиваться, если они простаивают дольше этого значения.

Записи, которые вы видите в журнале приложений, похоже, поступают из запроса ajax, а не из действия по отображению страницы. Это трудно диагностировать без информации о вашем приложении. Я предполагаю, что у вас есть динамическое действие или какой-то код javascript с таймером для обновления страницы или области страницы. Как только сеанс истекает, эти ajax-запросы начинают выходить с ошибками. Что вы могли бы сделать, так это выяснить, какой компонент/процесс выдает сообщение об ошибке, и вложить в него некоторую логику, чтобы оно срабатывало только в том случае, если сеанс действителен (с использованием APEX_CUSTOM_AUTH.IS_SESSION_VALID )

Комментарии:

1. У меня нет таймера для обновления любого региона в моем приложении. У меня есть несколько динамических действий для обновления диаграмм, когда пользователь изменяет значение элемента (список выбора). Единственный код JS window.open('', '_blank'); -это перенаправление на другую страницу, когда пользователь нажимает на изображение.

2. это перенаправление на страницу apex ? Если да, передаете ли вы идентификатор текущего сеанса как часть этого URL-адреса ? Это могло бы объяснить истечение срока действия сеанса…

3. Нет, перенаправление не на страницу Apex