Letztens haben wir nach Hardware- und JDBC-Treiber-Wechsel folgende Fehlermeldung bekommen:
ORA-01000: too many open cursors (oder auf deutsch: maximale anzahl offener cursor überschritten)
Tatsächlich gab es noch 2 Statements im Application-Server, bei das Statement nicht geschlossen wurde. Man findet die betreffenden Statements mit folgendem SQL:
- select
- c.sid,
- c.address,
- c.hash_value,
- COUNT(*) as "Cursor Copies"
- from v$open_cursor c
- group by
- c.sid,
- c.address,
- c.hash_value
- having
- count(*) > 2
- order by
- 3 desc
Unter Umständen kann man im Live-System beobachten, wie die Anzahl der offenen Cursor wächst.
Offensichtlich hat uns der vorherige JDBC-Treiber das nicht-Schliessen des Statements vergeben.