Oracle:空闲时间似乎被忽略

Oracle:空闲时间似乎被忽略,oracle,session,session-timeout,Oracle,Session,Session Timeout,根据我的理解,创建一个将idle\u time设置为特定值(以分钟为单位)的配置文件,并创建一个具有此配置文件的用户,应在该用户空闲时间超过idle\u time时,强制该用户的会话处于SNIPED状态。当用户尝试在发生这种情况后执行查询时,他会收到一条消息,要求他必须再次连接 第一个问题:是这样吗?如果是这样,请继续阅读: 我正在sqlplus中运行一个测试脚本,如下所示(显然没有占位符): 我得到的结果是: USERNAME STATUS SECONDS_IN_WAIT -------

根据我的理解,创建一个将
idle\u time
设置为特定值(以分钟为单位)的配置文件,并创建一个具有此配置文件的用户,应在该用户空闲时间超过
idle\u time
时,强制该用户的会话处于
SNIPED
状态。当用户尝试在发生这种情况后执行查询时,他会收到一条消息,要求他必须再次连接

第一个问题:是这样吗?如果是这样,请继续阅读:

我正在sqlplus中运行一个测试脚本,如下所示(显然没有占位符):

我得到的结果是:

USERNAME  STATUS   SECONDS_IN_WAIT
--------- -------- ---------------
TEST_USER INACTIVE            1166
为什么未将状态设置为
SNIPED


显然,如果我从test_用户的sqlplus窗口运行另一个查询,我不会收到要求我重新连接的消息。

为了使配置文件中的资源限制生效,您需要将数据库的
RESOURCE_LIMIT
参数设置为
TRUE
。假设您使用spfile(否则省略
scope=BOTH
部分)


一旦您这样做,
PMON
每隔几分钟醒来时,应该开始拦截超过您的
空闲时间的会话。

您需要将数据库的
资源限制
参数设置为
TRUE
,以便配置文件中的资源限制生效。假设您使用spfile(否则省略
scope=BOTH
部分)

一旦您这样做,
PMON
每隔几分钟醒来时,应该开始拦截超过您的
空闲时间的会话

SELECT username, status, seconds_in_wait FROM v$session WHERE username = 'test_user';
USERNAME  STATUS   SECONDS_IN_WAIT
--------- -------- ---------------
TEST_USER INACTIVE            1166
ALTER SYSTEM SET resource_limit = TRUE scope = BOTH