hallo allerseits,
habe mal eine vermeintlich simple Frage. Die sich für mich zu einem unlösbaren Problem zu entwickeln scheint.
Der Applikation an der Ich programmiere, soll eine Logout Funktion hinzugefügt werden. Das habe ich soweit geschafft. Allerdings ist nach drei Logouts, der Speicher voll.
Nach einem Login wird, die GUI komplett neu gebaut, damit ich keine Probleme mit etwaigen Benutzerrechten bekomme. Aber die alten geschlossenen GUI bleiben aus irgendeinem Grund im Speicher. Ich halte definitiv keine Referenzen mehr. Ich habe mir mal den vollständigen Heap angesehen und es scheinen lediglich andere UI Componten oder irgendwelche Listener auf die alte GUI verweisen. Sieht für mich aus wie eine riesige Island of Isolation oder eher ein "Kontinent". Die Objekte werden aber auch bei einem Full GC nicht aus dem Speicher entfernt.
Hat jemand eine Idee, wie man Swing und evtl auch den dazugehörigen Thread komplett runterfahren kann? Oder weiß jemand, welche Referenzen manuell gelöst werden müssen?
Ein kompletter Neustart der Applikation dauert zu lange (30 Sekunden), da die Applikation auf einem Oracle Framework (BC4J) aufbaut und viele Informationen erst zur Laufzeit aus XML Dateien gelesen werden.
Für jede Idee wäre ich dankbar.
Gruß, jacko
habe mal eine vermeintlich simple Frage. Die sich für mich zu einem unlösbaren Problem zu entwickeln scheint.
Der Applikation an der Ich programmiere, soll eine Logout Funktion hinzugefügt werden. Das habe ich soweit geschafft. Allerdings ist nach drei Logouts, der Speicher voll.
Nach einem Login wird, die GUI komplett neu gebaut, damit ich keine Probleme mit etwaigen Benutzerrechten bekomme. Aber die alten geschlossenen GUI bleiben aus irgendeinem Grund im Speicher. Ich halte definitiv keine Referenzen mehr. Ich habe mir mal den vollständigen Heap angesehen und es scheinen lediglich andere UI Componten oder irgendwelche Listener auf die alte GUI verweisen. Sieht für mich aus wie eine riesige Island of Isolation oder eher ein "Kontinent". Die Objekte werden aber auch bei einem Full GC nicht aus dem Speicher entfernt.
Hat jemand eine Idee, wie man Swing und evtl auch den dazugehörigen Thread komplett runterfahren kann? Oder weiß jemand, welche Referenzen manuell gelöst werden müssen?
Ein kompletter Neustart der Applikation dauert zu lange (30 Sekunden), da die Applikation auf einem Oracle Framework (BC4J) aufbaut und viele Informationen erst zur Laufzeit aus XML Dateien gelesen werden.
Für jede Idee wäre ich dankbar.
Gruß, jacko