Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

JVMDUMP006I Speicherauszugsereignis "systhrow" wird verarbeitet; Detail "java/la

<< < (2/6) > >>

flaite:
Sind in dem Agenten irgendwelche 3rd Party Libs eingebunden?
Notes/Domino haben da seit 12 Jahren ein Problem mit dem Classloader, der zu einem Memory-Leak führt.
Die andere Möglichkeit ist, dass Du in einer Schleife sehr viele Notes-Objekte erzeugst und sie nicht richtig recyclest.

Ich würde mich über ein Tutorial von eknori zum Thema "Memory Leaks aufspüren mit diesem Tool" freuen. Nix für ungut. Schwarzer Humor.   

saludos solidarios

Axel

Fragensteller:
hi, ja das Tool hat geholfen.

The classloader/component "lotus.domino.AgentLoader @ 0x7fff6ecd840" occupies 58.543.768 (46,52%) bytes. The memory is accumulated in one instance of "java.util.Hashtable$Entry[]" loaded by "<system class loader>".

Keywords
lotus.domino.AgentLoader @ 0x7fff6ecd840
java.util.Hashtable$Entry[]

Label                                            Number of Objects                         Used Heap                       Size Retained Heap Size
java.util.Hashtable$Entry
First 10 of 5.877 objects              5.877                                              329.112                           58.406.120


Es wurde viel mit Hashmaps und TreeMaps gearbeitet.
Werde also mal versuchen die 3rd Party Libs rauszunehmen und das ganze auf linkedlists umzustellen.

flaite:
Also das Tool hat ganz viele Hashtable Einträge gefunden. Ich würde daraus schliessen, dass das Ding nix taugt, weil das kann alles mögliche heißen. Verdächtig ist, dass der AgentLoader die Hashtables hält. Hmm. Das ist nun wieder interessant. Vielleicht taugt das Ding doch was. Wie gesagt Third Party Libs.
Und was ist das Problem mit den HashMap und TreeMap? Die sind im Paket java.util vom JDK und sind nicht böse.

WICHTIG UND VERMUTLICH DES PUDELS KERN: Mit Third Party Libs meine ich .jar Dateien, die im Agenten eingehängt sind. Schau da mal nach.
Poste mal die import statements oben im Agenten.

Domino Server und Notes Client haben ein lib/ext Verzeichnis (Such nach ext als Ordner auf der Maschine, auf dem der Agent läuft). Häng die jars aus dem Agenten raus und pack die ins lib/ext. 

Fragensteller:
Das Umstellen auf LinkedLists hat es nicht gebracht. Also wieder HashMaps.
Hatte nur gelesen das hashMaps und TreeMaps SpeicherLeaks verursachen können.

Eingebunden hatte ich die AdWords-Google-API.
Habe die nun ausgehängt und ins lib/ext Verzeichnis gepackt. WOW...
Bisher hatte ich wenn ich gestartet hatte mit runtime.freeMemory() beim ersten start 17 MB undbeim zweiten 3 MB.
Beim dritten Start kamm dann outofmemory.

Jetzt habe ich konztant 55,7 MB.

Leider bekomme ich jetzt noch einen Fehler.
Wenn ich das richtig verstehe, dann findet er die ausgehängte und ins ext kopierte Jar Datei nicht.

Muß ich hier noch etwas beachten?

Exception in thread "AgentThread: xx.xxxx.adwords.Run"
06.03.2012 10:01:44   Agent  error: java.lang.NoClassDefFoundError: com.google.api.adwords.v201109.cm.ReportDefinitionReportType
06.03.2012 10:01:44   Agent  error:  at xx.xxxx.adwords.Run.NotesMain(Run.java:120)
06.03.2012 10:01:44   Agent  error:  at lotus.domino.AgentBase.runNotes(Unknown Source)
06.03.2012 10:01:44   Agent  error:  at lotus.domino.NotesThread.run(Unknown Source)
06.03.2012 10:01:44   Agent  error: Caused by:
06.03.2012 10:01:44   Agent  error: java.lang.ClassNotFoundException: com.google.api.adwords.v201109.cm.ReportDefinitionReportType
06.03.2012 10:01:44   Agent  error:  at lotus.domino.AgentLoader.loadClass(Unknown Source)
06.03.2012 10:01:44   Agent  error:  at java.lang.ClassLoader.loadClass(ClassLoader.java:618)

Fragensteller:
So hat geklappt. Ich musste den Server neu starten.
Bau das ding nun mal zuende und gebe Rückmeldung wegen dem Leak.

Danke nochmals

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln