Oracle Database / Sessions, Locks & Transactions
ORA-02391: check a user's concurrent-session profile limit
One account may be unable to open another session while the database has capacity. Inspect its assigned profile and session limit.
Environment and inputs: Oracle Database 19c baseline · SQL*Plus-compatible SQL unless RMAN, DGMGRL, ADRCI or a host shell is specified. Check release, patch level, edition and container first.
Start with this diagnostic
Use the stated SQL, RMAN, DGMGRL or host shell and replace sample names with approved targets. DBA and V$ views need authorized catalog access in the correct container. Do not grant broad privileges for an example.
SELECT u.username, u.profile, p.resource_name, p.limit FROM dba_users u JOIN dba_profiles p ON p.profile = u.profile WHERE u.username = 'APP_USER' AND p.resource_name = 'SESSIONS_PER_USER';
Read the result
The profile limit may inherit DEFAULT values, and enforcement depends on the relevant resource settings. Compare actual sessions for this account.
Resolve and verify
Find abandoned clients or oversized pools and align them with the approved account limit. Change the profile only after the identity and DBA owners approve the requirement.
Operational precautions
Do not remove profile limits globally to accommodate one leaking application.