Domino 9 und frühere Versionen > ND6: Entwicklung
Speicher wieder freigeben nach JavaAgent
Marinero Atlántico:
Es ist auf jeden Fall ein übler Hack.
Sehr vermutlich sollte man die GUI in einem eigenen Thread wrappen.
Aber selbst dann geht ein nicht unbeträchtlicher Teil der CPU-Zyklen für das rumpoltern in der Endlosschleife drauf.
--- Code: ---while (stayingAlive) { }
--- Ende Code ---
Sofern du den Source Code von TimeToAct vorliegen hast kannst du es auch so machen: vermutlich besser:
Übergebe dem Constructor des MainFrame Objekts das Session Objekt des Agenten und recycle das beim schliessen der GUI.
Grundsätzlich sind aber Notes Agenten nicht für sowas gedacht.
Hast du mal darüber nachgedacht, die GUI eventuell als Standalone app über Java Web Start zu verteilen?
Axel
rbo:
Hi,
ich muss doch sagen, Notes bringt mich immer wieder zum schmunzeln:)
Habe deine neue Lösung nun implementiert. Es funktioniert zwar, aber lustigerweise nur wenn schon ein gewisser Speicherplatz erreicht ist. Sprich, der Speicher steigt bis zu nem gewissen Punkt, und erst wenn dieser Punkt erreicht ist wird nun auch meine finalize() Methode aufgerufen. Naja, werde es wohl so lassen. Trotzdem vielen Dank für eine Hilfe, hast mir wirklich sehr geholfen.
Ich hab den Code von TimeToAct nich nur vorliegen, ich habe ihn entwickelt. Und leider kann man den Code nicht über WebStart verteilen, da dieser XML-Editor als Dialog in ein auf Notes/Domino basiertes CMS integriert werden soll um alle möglichen Settings-Dokumente, die in XML-Form vorhanden sind, grafisch editieren zu können.
Gruss, René
Marinero Atlántico:
--- Zitat von: rbo am 22.02.05 - 10:09:34 ---Es funktioniert zwar, aber lustigerweise nur wenn schon ein gewisser Speicherplatz erreicht ist. Sprich, der Speicher steigt bis zu nem gewissen Punkt, und erst wenn dieser Punkt erreicht ist wird nun auch meine finalize() Methode
aufgerufen. Naja, werde es wohl so lassen. Trotzdem vielen Dank für eine Hilfe, hast mir wirklich sehr geholfen.
--- Ende Zitat ---
Normles Verhalten des Java GarbageCollectors!
finalize KANN MAN NICHT TRAUEN.
Garbage Collector startet erst, wenn ein bestimmter Teil des Speichers belegt ist (kannst du setzen über jvm Startparameter -Xmx-> max. Heap Size).
Selbst dann kann es Objekte geben, die nicht garbage collected werden (interne Optimierung des Garbage Collector).
Kannst du den Code aus dem finalize nicht einfach in den EventHandler von dem Window.close()-Event tun?
--- Zitat von: rbo am 22.02.05 - 10:09:34 ---Ich hab den Code von TimeToAct nich nur vorliegen, ich habe ihn entwickelt.
--- Ende Zitat ---
Gruß an Michael Kamp :)
--- Zitat von: rbo am 22.02.05 - 10:09:34 ---Und leider kann man den Code nicht über WebStart verteilen, da dieser XML-Editor als Dialog in ein auf Notes/Domino basiertes CMS integriert werden soll um alle möglichen Settings-Dokumente, die in XML-Form vorhanden sind, grafisch editieren zu können.
--- Ende Zitat ---
Überlege dir Dringend dies als externe Komponente ausserhalb von Notes zu halten.
Z.B: Installation des jars über einen Button. Starten des Dings über den execute (?) Befehl von LotusScript.
--- Zitat ---
--- Ende Zitat ---
rbo:
Hi,
die Grüße sind ausgerichtet :)
In meiner finalize() Methode stand jetzt nichts weltbewegendes drin, mich hat halt nur mal interessiert wann sie ausgeführt wird.
Und zu entscheiden ob das Ding als externe Komponente mitgeliefert wird liegt leider nicht in meiner Hand. Werde es aber zumindest mal vorschlagen, da mir eine solche Lösung auch wesentlich besser gefallen würde.
Gruß René
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln