EBS 11i帳號登入正常,但是無法開啟Forms

 今天突然遇到一個很奇怪的現象,已經開啟Form的使用者沒有異樣,但是重新於瀏覽器中成功登入後,在開啟Forms時卻出現無法連線資料庫的訊息。

因為自己並沒有對EBS做任何設定,也沒有異動DB設定,難道被使用者或其他的資訊人員弄壞了。

不過就在檢查DB的Log之後,發現是ORA-00020: maximum number of processes (1000) exceeded

這個錯誤就是超過了DB設定的process的值,所以後來的連線當然會失敗。

既然知道了原因,可依下列步驟來修改process的設定值
SQL> alter system set processes=25 scope=spfile;

由於processes參數是靜態參數,必需重啟資料庫使參數調整生效
SQL> shutdown immediate;
SQL> startup;

可執行下列的SQL來檢查process、session目前使用量、最大使用量、限制量
SQL> SELECT RESOURCE_NAME,
                CURRENT_UTILIZATION, MAX_UTILIZATION, LIMIT_VALUE
                FROM V$RESOURCE_LIMIT
WHERE RESOURCE_NAME IN ( 'sessions', 'processes');

利用下列的SQL來找出inactive大於24小時的session,last_call_et是指最後一個SQL執行完後到sysdate的時間,單位為秒
SQL> select  'alter system kill session ''' || sid || ',' || serial# || ''';' ,status,schemaname,osuser,process,
             machine,program,sql_id,module,action,logon_time,last_call_et
            from v$session where status = 'INACTIVE'           
            and last_call_et > 86400
            order by last_call_et desc;