【问题标题】:table updation after expiring oracle apex application sessionoracle apex 应用程序会话到期后的表更新
【发布时间】:2018-03-02 11:33:50
【问题描述】:

如何在 apex 应用程序会话过期后更新我的表? 我想在当前会话过期后自动执行以下代码。

update users set logn='N' where u_name=app_user;
commit;

还有吗?

【问题讨论】:

    标签: oracle-apex oracle-apex-5


    【解决方案1】:

    当 APEX 会话过期时,实际上什么都不会发生。但是,如果用户再次尝试使用会话,则会检查它是否已过期。所以没有可以挂起更新的事件。

    您可以做的是让 DBMS_SCHEDULER 作业定期运行并检查每个“登录”用户是否有任何未过期的 APEX 会话;如果没有,则将它们设置为“未登录”。比如:

    update users u
    set    u.logn = 'N'
    where  u.logn = 'Y'
    and not exists (select null
                    from   apex_workspace_sessions aws
                    where  aws.user_name = u.u_name
                    and    aws.session_idle_timeout_on > sysdate
                  );
    

    试图跟踪 APEX 用户是否“登录”实际上是徒劳的——他们可能在没有“注销”的情况下关闭了笔记本电脑,因此会显示为“已登录”,直到他们的会话到期和这项工作运行。可能更有用的信息是了解他们上次活动的日期和时间,您可以从 APEX_WORKSPACE_ACTIVITY_LOG 获得。

    【讨论】:

    猜你喜欢
    • 2021-01-03
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多