Maximum open cursors exceeded?
Check the serverlogs around the time email notifications stopped working for entries like this indicating email notification tasks that started and then failed due to 'maximum open cursors exceeded'.
server:ServiceController: Email Notification Agent: STARTING
server:ServiceController: IS-10023 An I*S internal error has occurred
server:ServiceController: ORA-01000: maximum open cursors exceeded
server:ServiceController: Email Notification Agent: FINISHED
If you see 'Maximum Open Cursors' messages then run the following scripts. The scripts use system views. To access these you MUST be a user with Oracle System Administrator privileges, or your DBA must have granted you the necessary permissions (directly and not via a role).
If you don't have the necessary privileges you will get an ORA-00942 error.
Click these links for more information on the OPEN_CURSORS parameter and system view parameters in general.
Script 6a : What's the maximum number of cursors?
select value
from v$parameter
where name = 'open_cursors';
The result will be the count of cursors available.
Script #6b : How many cursors are in use?
Replace your_user_name with your system user name.
select sql_text, count(*)
from v$open_cursor
where user_name = 'your_user_name'
group by sql_text
or, alternatively, this query
select v.value as numopencursors, s.machine, s.osuser, s.username
from V$SESSTAT v, V$SESSION s
where v.statistic#=3
and v.sid = s.sid
The result will be the count of cursors currently in use.
If the scripts return high number, cursors might not be getting closed properly.
Increase the number of available open cursors. ( If you increase the number of cursors past a certain point, you must also increase the shared pool size.)
|