Hi there,
es gibt sie doch! Egal was man euch in der Schule erzählt hat, man kann in Java Speicherlöcher erzeugen! GC hin oder her.
Im konkreten Fall durch Verwendung des JConnectors für MySQL. Wie? ganz einfach: hol dir eine Connection, lass ein stmt erzeugen (für die übereifrigen auch ein rs) und verwirf die referenz drauf ohne es zu schließen.
Vor allem ein gemeiner Fehler wenn man an sich jeden Datenbankzugriff in einer schönen Methode kapselt und bei diesen Methoden der Body immer mit einem try-catch ummantelt ist, in dessen finally result, statement und connection geschlossen werden.
Weil wenn man dann in der Entwicklung mal eine Abfrage hat, die aus mehr als einer Abfrage besteht (zB für die Accountinfo die Userinfo aus der einen Tabelle und die Positioninfo aus der anderen) und sich denkt das es eigentlich Sinn macht das in einer Methdoe zusammen zu lassen (weils ja eigentlich von außen eine Abfrage is), dann darf man halt auch nicht vergessen zwischendrin das result und statement zu schließen bevor man es neu zuweist... weil das merkt weder der Compiler noch gibt es unerwartetes Verhalten. Auch im Profiler fällts nicht direkt auf wenn man nicht weiss wonach man sucht (es werden soviele andere Objekte erzeugt etc...) Nur wenn man das Ding ein paar Stunden laufen lässt und regelmäßig diese Methode aufgerufen wird (so alle paar Sekunden) bläst sich schön gemütlich der RAM auf...
Wenn das ganze dann auch noch in einer Server Applikation steckt die sowieso schon soviele Punkte enthält die man noch nit 100% versteht, macht die Fehlersuche noch mehr Spass ;)
So, genug ausgeschimpft.
Ne doch nicht: für alle die sich auch mal so ein Client/Server ding bauen wollen: Es gibt deutlich unterschiedliches Verhalten zwischen lokal und übers Netz. So krieg ich am VPS am Ende immer ein EndOfStream (wie erwartet), lokal hab ichs nie gekriegt (nur ein Timeout im versuch Daten zu lesen...).
Zusammenfassend: Der Alphatest am Server läuft. Mal sehen wie langs bis zum Betatest dauert. Ich lern täglich Unmengen über Serververhalten dazu und weiß inzwischen warum solche Projekte normal keiner allein macht... Aber mei, Hauptsache Spass an der Freude ;)
no worries
mythos
3 Comments
Recommended Comments