Hello all,
we have recently upgraded a bug tracking application to Apex 5.0.1. Since that time users complain about getting the error message that their session expired and needing to re-login although they have constantly been working with the application and have not been idle. The behavior is not reproducible on demand. The application property "Maximum Session Length in Seconds" is set to 28800 secs (8 hrs), "Maximum Session Idle Time in Seconds" is set to 10800 secs (3 hrs). Neither value is reached, the problem sometimes also occurs after working with the application for only a few minutes. The authorization scheme used by the application has the setting "Invalid Session Procedure Name" pointing to a procedure which simply contains:
procedure invalid_session_proc is
begin
wwv_flow.show (
p_flow_id => v('APP_ID'),
p_flow_step_id => 'LOGIN'
);
apex_application.stop_apex_engine();
end invalid_session_proc;
So the user simply is redirected to the login page.
By querying apex_050000.apex_workspace_activity_log I found two different kinds of entries:
a)
APEX_USER ERROR_MESSAGE ERROR_ON_COMPONENT_TYPE ERROR_ON_COMPONENT_NAME
nobody ORA-20987: APEX - Your session has expired - Contact your application administrator. WWV_FLOW_SECURITY FINAL_EXCEPTION_HANDLER
Sometimes APEX_USER is even empty!
and
b)
APEX_USER ERROR_MESSAGE ERROR_ON_COMPONENT_TYPE ERROR_ON_COMPONENT_NAME
FOO@BAR.COM ORA-20987: APEX - Your session has expired - Click <a href="f?p=109:1:::NO:::">here</a> to create a new session. WWV_FLOW_SECURITY FINAL_EXCEPTION_HANDLER
I assume that entries of type b are created when one of the timeout values is reached, but why does Apex sometimes thinks that sessions are invalid/have expired although they still are valid and produces entries of type a?
Does anyone have any tips on how to further analyze this problem? Because it cannot be reproduced on demand preferably some protocol mechanism would be needed which could be analyzed e.g. daily.
Can anyone describe the algorithm Apex uses to determine wether a session is valid or point to relevant documentation?
Some informations regarding the setup:
* Apex version: 5.0.1.00.06
* DB version: 11.2.0.3.0
* ORDS version: 2.0.10.289.08.11
* Glassfish server version: 3.1.2.2 (build 5)
Any help will be greatly appreciated.
Regards,
Christof