Autor Thema: Kann ich auf Statusmeldungen der JVM automatisch reagieren?  (Gelesen 3547 mal)

Offline r5027

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Ich liebe dieses Forum!
Hallo zusammen,

auf unserem Traveler Server und auch auf anderen Domino Servern mit Java Agenten gibt es gelegentlich Fehlermeldungen der JVM wie etwa folgende:

05.09.2012 09:01:07   HTTP JVM: JVMDUMP006I Speicherauszugsereignis "systhrow", Detail "java/lang/OutOfMemoryError" wird verarbeitet - bitte warten.
05.09.2012 09:01:07   HTTP JVM: JVMDUMP032I JVM forderte als Antwort auf ein Ereignis einen Speicherauszug von Heap mit "/local/notesdata/heapdump.20120905.090107.5999.0001.phd" an
05.09.2012 9:01:07   HTTP JVM: JVMDUMP010I Speicherauszug von Heap in /local/notesdata/heapdump.20120905.090107.5999.0001.phd geschrieben
05.09.2012 09:01:07   HTTP JVM: JVMDUMP032I JVM forderte als Antwort auf ein Ereignis einen Speicherauszug von Java mit "/local/notesdata/javacore.20120905.090107.5999.0002.txt" an

Das führt dann zu Ausfällen die aber meist nicht sofort auffallen. Kennt jemand eine Möglichkeit wie man auf solche Ereignisse automatisch reagieren kann? Im DDM schlagen die Meldungen leider nicht auf.

Vielen Dank im voraus
Frank

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #1 am: 10.09.12 - 12:18:56 »
In der Events4 kannst Du einen entsprechenden Event Handler setzen, und dann per Mail, Eintrag in ne Datenbank oder Eintrag in die DDM reagieren. Dazu filterst Du einfach nach einem eindeutigen Text (hier evtl. java/lang/OutOfMemoryError).

Was meinst Du wohl, woher die config dafür kommt, was alles im DDM auftaucht... ;-)
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline alexhe

  • Senior Mitglied
  • ****
  • Beiträge: 273
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #2 am: 10.09.12 - 14:03:09 »
Evtl wäre es auch sinnvoll die outOfMemory Meldungen zu beseitigen ?

HTTP Threads und physikalischen Speicher genug für eure Devices?
gruß
alex



21 x Domino 8.5.3FP6
2 x Domino 9.0.1FP2
~ 18k Notes 8.5.3FP6 Standard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #3 am: 10.09.12 - 14:31:03 »
Ach was... Ursachenforschung und behebung ist doch so aufwändig... den Auswirkungen hinterherzuwischen ist viel einfacher... ;-)
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline r5027

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Ich liebe dieses Forum!
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #4 am: 10.09.12 - 15:45:15 »
Klar suche ich nach den Ursachen und versuche die Speichereinstellungen zu tunen. Wenn es aber trotzdem schief geht dann möchte ich das sofort wissen und nicht erst durch den User erfahren. Wir haben nur 40 Devices, da überrascht mich ein OutOfMemory schon. Einen Event Handler habe ich jetzt eingerichtet.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #5 am: 11.09.12 - 06:37:06 »
Java Heap Space über Serverdokument oder/und Notes.ini Parameter hochsetzen (über notes.ini JavaMaxHeapSpace). Schau halt wie weit der Arbeitsspeicher auf den Servern ansonsten beschäftigt ist. Ein Max Heap Space von 1024m würd ich nicht als crazy ansehen. Wieviel Arbeitsspeicher haben die betroffenen Server nun? Fallen da irgendwelche Spitzen auf? Man kann die Auslastung des Arbeitsspeichers übrigens auch mit sowas wie nagios überwachen. 


Zu Traveller habe ich das noch gefunden:
NTS_Java_Parms=-Xms96m -Xmx512m
In einigen Fällen wurde festgestellt, dass während des Startens von Lotus Notes Traveler auf den Maximalwert für die Größe des Java-Heapspeichers im Serverdokument nicht zugegriffen werden kann. In diesem Fall verwenden Sie "-Xms###m", um den Mindestwert, und "-Xmx###m", um den Maximalwert für die Größe des Heapspeichers in MB anzugeben.

Hilft das immer noch nicht, habt ihr selbst- oder dritt-programmierte Agenten und sofern man an den souce code der Agenten herankommt, könnte ich das vermutlich gegen Rechnung beheben, ohne mich groß in die Business-Logik der Agenten reinzudenken. Es sind immer die gleichen Muster, die zu sowas führen. Bei Interesse, PM an mich.   
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline alexhe

  • Senior Mitglied
  • ****
  • Beiträge: 273
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #6 am: 11.09.12 - 09:56:32 »
@r5027 Welche Einstellungen hast du denn für den Speicher festgelegt?
Also JavaHeapSpace, HTTP Threads, Traveler Speicherzuweisung? Und wieviel Arbeitsspeicher hat der Server denn ?
gruß
alex



21 x Domino 8.5.3FP6
2 x Domino 9.0.1FP2
~ 18k Notes 8.5.3FP6 Standard

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Kann ich auf Statusmeldungen der JVM automatisch reagieren?
« Antwort #7 am: 11.09.12 - 10:13:05 »
Die Analyse eines Heapdumps hilft bei solchen Problemen sehr viel. Du solltest den VM-Parameter -XX:+HeapDumpOnOutOfMemoryError setzen, damit du im Falle eines OutOfMemoryErrors etwas zum Analysieren in die Hand bekommst.

Diesen Heapdump kann man dann selbst mit etwa mit den Eclipse Memory Analyzer Tools analysieren oder diesen Dump einem Experten zur Analyse übergeben. Ohne das wirst du vermutlich nicht auf die Ursache des Problems stoßen können, egal ob mit oder ohne professionelle Hilfe.

Es gibt auch die Möglichkeit einen Heapdump aus einer laufenden JVM mit dem JDK-Tool JVisualVM zu ziehen.

Edit: Der Heapdump wird ja schon automatisch erzeugt. Also muss wahrscheinlich der VM-Parameter nicht mehr gesetzt werden. Dieser Heapdump sollte aber Basis für alle weiteren Schritte sein.
« Letzte Änderung: 11.09.12 - 10:16:05 von MadMetzger »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz