Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Speicherverwaltung Java + Lotus Notes Domino
Ralf_M_Petter:
Ohne Böse zu sein, aber deine Code schnippsel sagen praktisch gar nichts aus. Gerade bei so vertrakten Problemen wie Memory leaks, benötigt man auf jeden Fall den gesamten Code der das Problem auslöst, sonst ist das nur ein Blick in die Kristallkugel.
Also mein Tip. Mach dir die Arbeit und mach ein einfaches Beispiel mit so wenig Code wie möglich wo du den Fehler reproduzieren kannst.
Verwendest du Swing in deinem Applet? Eventuell sind es deine Swing Objekte die sich irgendwie gegenseitig referenzieren. in dem Bereich hatte ich schon mal Probleme.
Grüße
Ralf
Snowaddy:
Vielen Dank für Deine schnellen Antworten..
Ich kann kaum die ganzen 300kb Code posten (Source-Code noch viel mehr). Der gepostete Code beschreibt grob das Laden der Daten...
Wieso muss ich mit NotesThread.sinit/sterm aufpassen ? Muss ich diese überhaupt verwenden (es funktioniert ja auch so) ?
Kann es sein, dass Objekt von der Notes-JVM nicht wieder freigegeben werden ?
Danke, Dirk.
Ralf_M_Petter:
Drum habe ich ja gesagt, du sollst ein kurzes Beispiel machen bei dem das Problem auch auftritt. Das ist die normale Vorgehendsweise bei solchen Problemen. Das Applet soweit wie möglich zu reduzieren.
Zu NotesThread.sinit sterm ist zu sagen, wenn du die Notes API nur im Standard Thread verwendest, wirst du es nicht brauchen. Wenn du es jedoch auch z.B. im Event Handler Thread verwenden willst, dann musst du diesen Thread unbedingt für Notes initialisieren und auch wieder beenden. Man sollte auch nicht Notes Objekte in mehreren Threads verwenden. Vorsicht, das gilt aber nur bei Verwendung des lokalen Zugriffs. Wenn du DIIOP verwendest was im Webbrowser wahrscheinlich so ist, darf man NotesThread nirgends verwenden. In Notes wird aber sehr wohl der Lokale Zugriff verwendet.
Aber wie gesagt ohne vollständigen Code ist alles Kaffeesudleserei.
Grüße
Ralf
Snowaddy:
Ok, danke für die Hilfe.
Ich werde jetzt nicht alle 20000 Codezeilen posten..
Was ich nur traurig finde ist, dass sich der Notes Client verabschiedet, sobald der Java Speicher am Ende ist..
Es liegt mit Sicherheit auch nicht an der Benutzung der Notes-API.
Es mag sein, dass nicht alle Objekte beim Beenden sauber auf NULL gesetzt werden, aber es sollte doch auch ohne das explizite Setzen auf NULL funktionieren.
Tut es ja in anderen JVMs auch.
Gruß, Dirk.
Ralf_M_Petter:
Entschuldige kannst du mir vielleicht sagen was an dem Satz "Du sollst ein einfaches Beispiel bringen wo das Problem auftritt" du nicht verstehst? In einem 20000 Zeilen Code Monster wirst du den Fehler sowieso nie finden. Deshalb ist wie ich bereits mehrmals geschrieben habe die richtige Vorgehendsweise bei solchen Problemen den Fehler mit einem einfachen Beispiel zu reproduzieren.
Meiner Erfahrung nach liegt es meistens daran dass man in Swing nicht ordentlich aufgeräumt hat. Ein Teil deines Applets läuft dann nach Beendigung des Codes einfach weiter. Das liegt meiner Meinung auch ein wenig darin begründet, da Notes die JVM nach Beenden des Applets nicht einfach beendet. Notes verwendet auch nur eine JVM für alle Aktivitäten.
Wie gesagt, helfe gerne aber wenn du dafür nichts machen willst, wendest du dich wohl besser nicht an ein Forum sondern an den kostenpflichtigen Support. Leider für dich werden die auch ein Beispiel anfordern an dem das Problem reproduzierbar ist.
Grüße
Ralf
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln