ORA-02399: exceeded maximum connect time, you are being logged off
Cause: As stated
Action: None
ORA-02399 错误是由于在 Oracle 数据库中发生的连接超时引起的。它是一个警告信息,记录服务器上实例的线程正在被登出。
ORA-02399错误表明应用程序会话在一段时间内未发出SQL语句,而该时间短于数据库参数”_MAX_CONNECT_TIMEOUT”设置的最大超时时间。从ORACLE9.2以后,可以很容易地通过设置其该参数来控制会话的最大连接时间,减少进程的积压。
一个常见的案例是,当客户端应用程序打开一个连接,但客户端应用程序无法对后端数据库发送任何查询或操作命令(如函数调用)时,就会发生这种情况。
1. 使用ALTER SYSTEM命令提高最大连接时间_MAX_CONNECT_TIMEOUT,来避免在连接过程中断开连接:
ALTER SYSTEM SET “_MAX_CONNECT_TIMEOUT”=300 SCOPE=SPFILE;
2. 处理任何存在的空闲进程,使用下面的SQL查找空闲进程:
SELECT sid, serial#, status, progname,machine, program FROM v$session WHERE last_call_et >500;
当你发现进程处于IDLE状态时,可以使用ALTER SYSTEM命令来杀死它:
ALTER SYSTEM KILL SESSION ‘sid,serial#’ scope=spfile;
3. 如果长期存在太多的空闲进程,可以在profile文件中设置IDLE_TIME变量,以便能更好地控制:
ALTER PROFILE DEFAULT LIMIT IDLE_TIME 15;
4. 有时候,在可能的情况下,部署一个批处理时间,以便删除不活动的会话,以避免发生此错误。