ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit

Query
--------
User reported some of his programs terminated with the below errors.

ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit

Solution
---------
SQL> select profile from dba_users where username='AP%';

SQL> select profile,resource_name,limit from dba_profiles where profile like 'AP_USERPROFILE%';

PROFILE                   RESOURCE_NAME                    LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE                   COMPOSITE_LIMIT                  DEFAULT
AP_USERPROFILE                   SESSIONS_PER_USER                10
AP_USERPROFILE                   CPU_PER_SESSION                  DEFAUL
AP_USERPROFILE                   CPU_PER_CALL                     DEFAULT
AP_USERPROFILE                   LOGICAL_READS_PER_SESSION        DEFAULT
AP_USERPROFILE                   LOGICAL_READS_PER_CALL           DEFAULT
AP_USERPROFILE                   IDLE_TIME                        DEFAULT
AP_USERPROFILE                   CONNECT_TIME                     DEFAULT
AP_USERPROFILE                   PRIVATE_SGA                      DEFAULT
AP_USERPROFILE                   FAILED_LOGIN_ATTEMPTS            5
AP_USERPROFILE                   PASSWORD_LIFE_TIME               90

PROFILE                   RESOURCE_NAME                    LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE                   PASSWORD_REUSE_TIME              1
AP_USERPROFILE                   PASSWORD_REUSE_MAX               15
AP_USERPROFILE                   PASSWORD_VERIFY_FUNCTION         DEFAULT
AP_USERPROFILE                   PASSWORD_LOCK_TIME               .052
AP_USERPROFILE                   PASSWORD_GRACE_TIME              10

16 rows selected.


If we want to modify the profiles for the RESOURCE_NAME ,
but keep in mind the profile value it self will be modified and all the users associated with the profile will be effected.

SQL> alter profile AP_USERPROFILE LIMIT SESSIONS_PER_USER 20;

After changing the values you can verify the dba_profiles again for the confirmations.

Some More Info on Profiles
---------------------------
ALTER PROFILE profile_name LIMIT <RESOURCE_NAME> value;

limit  =     SESSIONS_PER_USER
             CPU_PER_SESSION
             CPU_PER_CALL
             CONNECT_TIME
             IDLE_TIME
             LOGICAL_READS_PER_SESSION
             LOGICAL_READS_PER_CALL
             COMPOSITE_LIMIT
             PRIVATE_SGA


ALTER PROFILE profile_name LIMIT pw_limit(s) range;

pw_limits =  PASSWORD_LIFE_TIME
             PASSWORD_GRACE_TIME
             PASSWORD_REUSE_TIME
             PASSWORD_REUSE_MAX
             FAILED_LOGIN_ATTEMPTS
             PASSWORD_LOCK_TIME

   range  =  UNLIMITED | DEFAULT | expression







Comments