ORA-02396: exceeded maximum idle time, please connect again
猜测估计是连接池中的连接已经被oracle 断掉,但是应用程序在取出来的时候会没有判断session的状态
如果dba修改了dba_profile中的idle_time默认值,将会对连接进行一定的限制
但有时却很莫名地错,有很多进程的状态是inactive,却不正常退出,解决
办法是取消该限制一段时间,然后再限制就可以解决一些问题,从metalink
上查,这是一个8i的bug
修改idle_time 为无限 问题不出现了
sql>alter profile default limit idle_time unlimited;
SQL> select * from dba_profiles;
SQL> select * from dba_profiles;
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL 300000
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
经过确认 应用连接池设置的idle_time 是10分钟 所以我设置了oracle session idle_time 空闲时间为30分钟
这样目前也没有出现问题,可能oralce 默认的idle_time 值小于10分钟吧,所以导致问题的出现.只要应用的配置和数据库的配置相一致就不会出现问题!