2010/10/21

セッションタイムアウト

概要
何らかの理由で、Oracle Database Server 側にセッションが残る場合がある。
プロファイルの CONNECT_TIME , IDLE_TIME を設定することで、セッションを終了させる事が出来る。
この機能を有効にするには、RESOURCE_LIMIT を TRUE に設定する必要がある。

確認
RESOURCE_LIMITを確認 (初期値はFALSE)
SHOW PARAMETER RESOURCE_LIMIT
ユーザのプロファイルを確認 (注)ユーザは、明示してプロファイル指定しなければ、「DEFAULT」プロファイルが適用される
SELECT USERNAME, PROFILE FROM DBA_USERS;
プロファイルの内容を確認 (注)プロファイルDEFAULTのCONNECT_TIME,IDLE_TIMEは共にUNLIMITEDが初期値である。
SELECT * FROM DBA_PROFILES;

設定
RESOURCE_LIMITを有効にする
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
(注)上記はデータベースの再起動なく変更できるが、再起動すると無効となるため、初期化パラメータに設定する必要がある。

ユーザにプロファイルを割り当てる
ALTER USER xxx IDENTIFIED BY XXXXX PROFILE aaa;
プロファイルを作成する。
create profile test01 limit idle_time 100 connect_time 1000
(注)IDLE_TIME,CONNECT_TIME共に単位は分。
プロファイルを削除する。
DROP PROFILE aaa;
資料-DEFAULT
PROFILE RESOURCE_NAME RESOURCE_TYPE 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 UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
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