kopf.lastig Alles mögliche zu Themen wie Familie, Beruf, Medien etc. …

2009-09-25

Einfache Konstruktoren

Filed under: Java — Schlagwörter: , — Erik @ 12:52

Gespräch mit Kollege:
Gegeben Klasse A und Klasse B extends A und ich rufe im Konstruktor von A eine Methode auf, die in B überschrieben wird und die dort auf eine in B definierte Variable zugreift, dann ist diese Variable zum Zeitpunkt des Aufrufs nicht initialisiert. Das stimmt.

Wozu brauchst Du das?
Klasse Gruppenbaum, im Konstruktor lese ich Baum aus DB.
Na das ist ja nicht so gut. Konstruktoren sollten ihr Objekt in einen definierten Zustand bringen, mehr aber auch nicht. Wurde schon vor langer Zeit beschrieben.

Oracle Fehlermeldung: „Too many open cursors“

Filed under: Java,Software-Entwicklung — Schlagwörter: , — Erik @ 12:47

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:

[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
[/sql]
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.

Powered by WordPress