HCL Notes / Domino / Diverses > Administration & Userprobleme
JavaAgent bringt eine Instanz vom AgentManager zum Absturz, Out of Memory
mapbug:
Vielen Dank für eure schnellen und hilfreichen Antworten.
Den angesprochenen Java-Addin-Servertask werde ich bei Gelegenheit noch probieren.
Mit diversen Parametern haben wir mit der HCL und unseren Partnern viele, viele Tests gemacht -> leider keine Verbesserung.
Ich habe am Samstag noch ein System.gc() nach jedem Speichern eines "Portal"-Dokuments eingebaut und seitdem bekomme ich keine Fehlermeldungen mehr.
Ich werde das natürlich weiterhin beobachten bis der JavaAgent zwei Wochen ohne Fehler durchläuft.
Was mich noch interessiert:
Könnte es sein dass die Speicherallokierung für den AgentenManager einfach Schrott ist ?
Oder hat ein recycle() in einem JavaAgenten eine so geringe Priorität dass der Domino das erst später machen will und sich so den Speicher nie rechtzeitig leert? (und dabei hilft dann der Garbage Collector ?)
Werner Götz:
Hallo Benjaman!
Das wäre doch die gewünschte Verbesserung?
Wäre auf alle Fälle mal interessant, wenn Du ein Logging einbauen würdest und einen Vergleich mit System.gc() und ohne machen würdest.
Dann sollte man auch sehen, ob der Speicherverbrauch konstant bleibt und nicht von der abgearbeiteten Datenmenge abhängt.
So könnte man dann auch ermitteln, ob der Garbage Collector wirklich nach jedem Dokument aufgerufen werden sollte (kann ich mir nicht vorstellen) oder z. B. alle 100 bzw. 1000 Dokumente - und was das bzgl. Laufzeit an Unterschied ausmacht.
Deine beiden letzten Fragen müssten wohl entsprechende Spezialisten beantworten.
Aus der Doku: "Recycle() destroys the C++ object and sets the Java object for garbage collection."
Problem ist also wohl nicht das recycle, sondern dass der Garbage Collector anscheinend nicht automatisch aufgerufen wird...
-Werner
AlexZX:
Hallo Benjamin,
ich habe bei mir ein ähnliches Problem mit einigen Java Agenten gehabt.
Bei mir hat geholfen den "JavaMaxHeapSize" auf dem Domino auf 1024MB zu erhöhen (in der notes.ini auf dem Domino Server "JavaMaxHeapSize=1024MB" eintragen).
Zusätzlich starte ich den Agent Manager Task jede nacht neu (dadurch werden die evtl. nicht bereinigten Threads entfernt)
Nach diesen Einstellungen laufen bei mir alle Java Agenten schon mehrere Jahre ohne Probleme...
mapbug:
@Werner
Ja, System.gc() war die Lösung.
Ich laufe teilweise mehr als 6000 Dokumente durch um mir Daten zu holen.
Gespeichert werden maximal 50 Dokumente. Nach jeder Speicherung rufe ich den GC auf.
Der Speicherverbrauch hat was mit der abgearbeiteten Datenmenge zu tun.
So wie ich das nun betreibe bringt der Garbage Collector keine nennenswerten Unterschiede in der Laufzeit.
@AlexZX Danke für den Vorschlag
JavaMaxHeapSize ist gesetzt.
Den AgentManager würde ich ungern nächtlich neu starten, da eigentlich rund um die Uhr Agenten laufen. Aber ein Versuch ist es wert.
mapbug:
Dann bedanke ich mich vielmals !!
-closed-
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln