Bei Java gibt es keine C-typischen Schutzverletzungen mehr - könnte man annehmen. Leider wurde ich in letzter Zeit gleich bei mehreren Kunden eines Besseren belehrt:
Bei einem SAP XI Kunden stürtzt die Sun Java VM (1.4.2_09) auf einem Itanium Rechner jede Stunde mit einer Accesss Violation ab (wenn der Compiler Thread des HotSpot JIT Compilers eine unserer Java Methoden übersetzen will). Offensichtlich hat die IA64 Version der Sun-VM hier einen Implementierungsfehler. Ich hoffe das Abschalten des JIT Compilers für diese eine Methode (mittels HotSpot Command File) bringt erst mal Linderung, bis die SAP Service Meldung bei Sun angekommen ist. Warum müssen Kunden immer auf solch exotische Systemlandschaften bauen?
Bei einem anderen Kunden wurde der JVM Crash nicht durch einen Implementierungsfehler des JIT Compilers ausgelöst, sondern in externem nativer Code. Dies ist eine Fehlerquelle, eigentlich häufiger als die VM Fehler. In unserem Fall war es die Sun JDBC-ODBC Bridge (bzw. der damit eingebundene alte ODBC Treiber). Zum Glück waren wir bei dem Kunden sowieso dabei die letzten ODBC Bridges zu entfernen - Problem also schnell behoben.
Weitere Gründe für Crashes in der JVM sind Hardware Probleme. Insbesondere defekter Speicher führt nicht selten zu zufälligen Abstürzen.
Hier mein Tipp für Administration und Systemmanagement: Für einen stabilen Betrieb ist es unbedingt erforderlich mit solchen Abstürzen zu rechnen: zum Einen muss das Gesamtsystem einen solchen Abbruch überstehen (Restart, Redundanz und wiederaufsetzen aus jeder Situation). Aber ebenso wichtig ist es, im Falle eines solchen Absturzes schnell der Ursache auf die Spur zu kommen. Sun's HotSpot VM schreibt sehr informative Crash Dumps: ein File mit dem Namen hs_err_pid.log.
Damit dieses File angelegt werden kann sollte der User der die JVM startet unbedingt Schreibrechte im aktuellen Startverzeichnis haben. Treten unerwartete Java Abstürze auf sollte Ihre erste Aktion sein, nach diesen Files zu suchen. Sie können sich auch nicht darauf verlassen, dass der Betriebsystem eigene Überwachungsmechanismus (Dr. Watson bei Windows oder coreadm bei Solaris) funktioniert: dadurch dass die HotSpot VM die Crashes selbst auswertet bekommt das Betriebsystem von den abnormalen Abstürzen nichts mit.
Bei der J2EE Adapter Engine von SAP XI finden sich die Crashdumps zum Beispiel in: /usr/sap/XIx/DVEBMGS00/j2ee/cluster/server0/hs_err_*.log. Bei anderen Anwendungen bietet es sich an einfach den K-Fall einmal auszuprobieren.
Bei einem SAP XI Kunden stürtzt die Sun Java VM (1.4.2_09) auf einem Itanium Rechner jede Stunde mit einer Accesss Violation ab (wenn der Compiler Thread des HotSpot JIT Compilers eine unserer Java Methoden übersetzen will). Offensichtlich hat die IA64 Version der Sun-VM hier einen Implementierungsfehler. Ich hoffe das Abschalten des JIT Compilers für diese eine Methode (mittels HotSpot Command File) bringt erst mal Linderung, bis die SAP Service Meldung bei Sun angekommen ist. Warum müssen Kunden immer auf solch exotische Systemlandschaften bauen?
Bei einem anderen Kunden wurde der JVM Crash nicht durch einen Implementierungsfehler des JIT Compilers ausgelöst, sondern in externem nativer Code. Dies ist eine Fehlerquelle, eigentlich häufiger als die VM Fehler. In unserem Fall war es die Sun JDBC-ODBC Bridge (bzw. der damit eingebundene alte ODBC Treiber). Zum Glück waren wir bei dem Kunden sowieso dabei die letzten ODBC Bridges zu entfernen - Problem also schnell behoben.
Weitere Gründe für Crashes in der JVM sind Hardware Probleme. Insbesondere defekter Speicher führt nicht selten zu zufälligen Abstürzen.
Hier mein Tipp für Administration und Systemmanagement: Für einen stabilen Betrieb ist es unbedingt erforderlich mit solchen Abstürzen zu rechnen: zum Einen muss das Gesamtsystem einen solchen Abbruch überstehen (Restart, Redundanz und wiederaufsetzen aus jeder Situation). Aber ebenso wichtig ist es, im Falle eines solchen Absturzes schnell der Ursache auf die Spur zu kommen. Sun's HotSpot VM schreibt sehr informative Crash Dumps: ein File mit dem Namen hs_err_pid
Damit dieses File angelegt werden kann sollte der User der die JVM startet unbedingt Schreibrechte im aktuellen Startverzeichnis haben. Treten unerwartete Java Abstürze auf sollte Ihre erste Aktion sein, nach diesen Files zu suchen. Sie können sich auch nicht darauf verlassen, dass der Betriebsystem eigene Überwachungsmechanismus (Dr. Watson bei Windows oder coreadm bei Solaris) funktioniert: dadurch dass die HotSpot VM die Crashes selbst auswertet bekommt das Betriebsystem von den abnormalen Abstürzen nichts mit.
Bei der J2EE Adapter Engine von SAP XI finden sich die Crashdumps zum Beispiel in: /usr/sap/XIx/DVEBMGS00/j2ee/cluster/server0/hs_err_*.log. Bei anderen Anwendungen bietet es sich an einfach den K-Fall einmal auszuprobieren.
Trackbacks
Trackback für spezifische URI dieses Eintrags
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Aha! Vorschläge, wie man sowas provoziert? Danke ;-)
Unter Linux zum Beispiel musst du die PID des gewünschten (nicht produktiven) Java Prozesses suchen und dann mit:
kill -BUS 1234
abschiessen. Du erhaelst dann das dump File und eine Ausgabe auf stdout.
Wie man das unter Windows einfach hinbekommt weiss ich nicht, taskkill.exe kennt jedenfalls keine Signale. Muß man wohl mit dem Debugger attachen. Ich frag mal rum.
Gruss
Bernd
Gruss
Bernd
So müsste des gewesen sein. wie ich mich erinnere.
Layout by Ricky Wilson | Serendipity Template by Carl Galloway | Login
Impressum
Bernd Eckenfels
Mörscher Str. 8
76185 Karlsruhe
bernd-08(a)eckenfels.net
Read More
Suche
Kategorien
Verlinkung
- coreadm[423]
- exotische
- Dr. Watson[411]
- Command File
- SAP XI[491]
Umfrage
Inhouse Coding?
Archive
Archive
Kommentare
Hans Dampf zu Bewerbung
2008-11-16 11:41
Ich finde es schon sehr anmaßend au
f derartige Anschreiben "negativ" z
u reagieren (und diese zu verspotte
n). Ansch [...]
2008-11-16 11:41
Bernd Eckenfels zu Bewerbung
2008-11-12 20:58
ROTFL - ja auf die Idee diese Blind
bewertungen abzusagen bin ich noch
garnicht gekommen .) Ist das jetzt
unhöflich [...]
2008-11-12 20:58
Dana Stoll zu Bewerbung
2008-11-12 13:39
Anbei ein Antwortschreiben, ebenfal
ls um einige Gedanken ergänzt.
S
ehr geehrter Herr Bewerber,
viel
en Dank f [...]
2008-11-12 13:39
Balu zu Gmail Features
2008-11-11 09:33
Schade, ich mag das Interface von G
Mail, aber ich brauche diese Filter
, um Catchall-Konten zu sortieren..
.
Ich [...]
2008-11-11 09:33
Bernd Eckenfels zu Gmail Features
2008-11-11 02:37
Ich glaube nen, nur From/To/Subject
, body und hasAttachment.
2008-11-11 02:37
Balu zu Gmail Features
2008-11-11 01:12
Kann man inzwischen nach beliebigen
Header-Feldern filtern?
Also z.
B. nach X-Original-To: oder sowas?
2008-11-11 01:12
TK zu Gmail Features
2008-11-09 18:34
LoL hätte nicht gedacht das die den
schwachsinn wirklich einführen. Au
ßerdem könnte ein Betrunkener das F
eature au [...]
2008-11-09 18:34
Bernd Eckenfels zu Gmail Features
2008-11-07 03:00
Ja ich benutz das eigentlich nur in
Englisch. Die Features waren mir n
ur bisher nicht aufgefallen .)
2008-11-07 03:00
Rico zu Gmail Features
2008-11-05 16:58
Tip: GMail auf Englisch umstellen,
dann hast du die neuen Features sch
on Monate vorher.
2008-11-05 16:58
Hardware-Blogger zu Firmenstrukturen
2008-11-03 21:44
Sehr lustig das Bild aber leider wi
rklichkeit in vielen Unternehmen...
2008-11-03 21:44
Blog abonnieren
Blogsphere
Letzten Monat...
Fr, 17.10.2008Java 6u10 ist da (und 6u7 für Itanium)
Fr, 17.10.2008Java 6u10 ist da (und 6u7 für Itanium)
Do, 16.10.2008Gillmor und der Open Source Markt
Mo, 13.10.2008Microsoft Entwicklungen
Mi, 08.10.2008Hyper-V Server
Fr, 17.10.2008Java 6u10 ist da (und 6u7 für Itanium)
Do, 16.10.2008Gillmor und der Open Source Markt
Mo, 13.10.2008Microsoft Entwicklungen
Mi, 08.10.2008Hyper-V Server
Top Referers
www.google.de (24)
search.live.com (4)
bernd.eckenfels.net (2)
ralfeisend.blog.de (2)
www.google.ch (2)
blog.micha.de (1)
de.ask.com (1)
www.google.at (1)
search.live.com (4)
bernd.eckenfels.net (2)
ralfeisend.blog.de (2)
www.google.ch (2)
blog.micha.de (1)
de.ask.com (1)
www.google.at (1)
