如何解决ADW的Database Actions多用户登录时旧会话被踢下线问题
ADW实例Database Actions多用户并发访问配置方案
出现单用户登录强制踢掉已有会话的问题,需要按以下步骤调整配置:
- 实例版本校验
首先确认当前ADW实例版本为19c及以上,低版本需先升级实例到支持多并发会话的正式版本。 - 调整数据库用户并发会话限制
使用ADMIN权限账户登录Database Actions,进入SQL控制台执行如下命令:
-- 查询目标用户关联的profile SELECT profile FROM dba_users WHERE username = 'YOUR_USER_NAME'; -- 修改对应profile的会话上限,按需设置数值或配置为无限制 ALTER PROFILE <QUERY_RESULT_PROFILE_NAME> LIMIT SESSIONS_PER_USER UNLIMITED;
- 关闭ORDS单会话模式
Database Actions底层基于Oracle REST Data Services(ORDS)提供服务,默认开启的单会话模式会限制同一用户仅能存在一个活跃会话:
- 进入ADW实例管理控制台,找到ORDS配置板块
- 关闭单会话模式开关,同时将
security.disable.inactivity.timeout参数调整为false,按需设置session.timeout会话超时时长
- 关闭跨设备登录IP绑定限制
如果需要支持同一用户跨多设备同时登录,执行如下命令关闭ORDS的JWT会话IP校验:
EXEC ORDS.SET_PROPERTY('security.jwt.verify.ip', 'false'); COMMIT;
- 配置生效
所有配置修改完成后,重启ADW实例的ORDS服务,等待3分钟左右配置生效后即可测试多用户/多设备并发登录。
注意事项
- 若使用不同的独立数据库用户并发登录,无需调整
SESSIONS_PER_USER参数,仅关闭ORDS单会话模式即可 - 生产环境建议根据业务实际需求设置
SESSIONS_PER_USER的合理上限,避免会话过多占用实例资源
内容的提问来源于stack exchange,提问作者Engin SENEL
相关产品推荐
相关产品推荐

