多应用程序会话的会话超时

时间:2013-01-11 14:53:11

标签: timeout oracle-apex

(APEX 4.1.1.00.23)

我有两个共享相同会话的应用程序A和B(因为它们使用相同的会话cookie),并且每个应用程序都将最大会话空闲时间设置为相同的值N.已建立会话并访问了两个应用程序,如果我然后在应用程序A中花费超过N秒(执行大量页面加载以便不超时),如果我然后导航到应用程序B,它会立即超时并将我发送到其登录页面。

我还尝试在两个应用程序中调用APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(N),p_scopr默认为'SESSION',注意到API文档说

  

这将是多个Application时最常见的用例   Express应用程序使用通用的身份验证方案   旨在作为一个共同会话中的套件运作。

然而同样的事情发生了。

我希望超时作为一个整体应用于会话,而不是独立地应用于每个应用程序。这不是上面应该达到的目标,还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

我从Christian Neumueller那里得到了the Oracle APEX forum的答案:

  

...... 4.2中没有问题了。看4.1.1   代码,似乎问题是我们如何存储上次访问时间。   使用SESSION范围调用APEX_UTIL时会设置空闲超时   对于这两个应用程序,我们为每个应用程序维护了一个计时器(FSP_LAST_REQUEST_TIME)   应用程序。在TIMTEST1中工作只更新TIMTEST1的计时器,而不是更新   TIMTEST2。使用一个应用程序并切换回另一个应用程序后   应用程序,Apex看到过时的计时器并确定会话已过期。   这显然是一个错误。坏消息是反击不是   可行,因为会话状态管理已经发生了很大变化。