High-End Output Management Systeme mit Oracle und Java

Transcrição

High-End Output Management Systeme mit Oracle und Java
Oracle AD4J – Your Troubleshooter
DOAG Konferenz 2009
Markus Heinisch
Architekt
[email protected]
Nürnberg, 18.11.2009
Basel
·
Baden
·
Bern
·
Lausanne
·
Zürich
·
Düsseldorf
·
Frankfurt/M.
·
Freiburg i. Br.
·
Hamburg
·
München
·
Stuttgart
·
Wien
Trivadis Facts & Figures
ƒ Über 540 Mitarbeiter an 13
Standorten im Raum D-A-CH
ƒ Finanziell unabhängig und
nachhaltig profitabel
ƒ Kennzahlen 2008
à Konsolidierter Konzernumsatz:
CHF 108 Mio. / EUR 68 Mio.
à Bei über 650 Dienstleistungskunden in über 1'600 Projekten
aktiv
à Über 150 Service Level
Agreements
à Über 5'000 Schulungsteilnehmer
à Forschungs- und Entwicklungsbudget:
CHF 6.0 Mio. / EUR 3.6 Mio.
2
© 2009
2008
Trivadis - das Besondere
Kundenindividuelle
Lösungskompetenz und
Herstellerunabhängigkeit
Technologiekompetenz
ƒ bietet fundierte Methodenkenntnisse und eigenentwickelte
Vorgehensweisen
ƒ garantiert wiederholbare Qualität und Realisierungssicherheit
ƒ hat über 15 Jahre Expertise in Oracle, Microsoft, IBM & Open Source
ƒ verfügt über ein eigenes Technology Center und setzt auf
technologische Exzellenz
Lösungs- und
Integrations-Know-how
ƒ hat eine breite, branchenübergreifende Kundenbasis und jährlich über
1600 Projekte
ƒ verbindet technologisches Spezialistenwissen mit dem Verständnis
für die Business-Spezifika des Kunden
Begleitung über den
gesamten IT-ProjektLifecycle
ƒ begleitet den gesamten IT-Projekt-Lifecycle mit einem modularen
Dienstleistungsportfolio
ƒ bietet für jeden „Reifegrad“ die passende Dienstleistungs- und
Lösungskombination
3
© 2009
2008
Agenda
ƒ Einführung AD4J
ƒ Kundeneinsatz
ƒ Fazit
Daten sind
immer im Spiel.
Oracle AD4J
4
© 2008
Troubleshooting Challenges
ƒ Unklare Problemstellung
ƒ Unbekanntes System
ƒ Hohe Erwartungshaltung
à Fachbereich vs. Betrieb
ƒ „Don‘t touch a running System“-Syndrom
à Restriktiver Zugang zum produktiven System
à Geringe Möglichkeiten zur Einflußnahme
Oracle AD4J
5
© 2008
Application Diagnostics for Java (AD4J)
ƒ Untersuchung der Probleme in produktiven Umgebungen
à nicht im Testsystem
Î verkürzt Zeit bis zur Lösung des Problems
ƒ Monitoring von Applikationen mit Grenzwertüberwachung und
Notifikation
à Î Ermöglicht proaktive Maßnahmen
ƒ Zur Anzeige der Java Aktivitäten ist keine Instrumentierung
notwendig
ƒ Hot Deployment
ƒ Minimal Runtime Overhead (<1%)
ƒ Standalone Tool (Teil von Oracle Enterprise Manager 10g R4)
Oracle AD4J
6
© 2008
Usage Scenarios
1. Memory Leak Detection and Analysis
2. Activity Monitoring and Diagnostics
3. Elapsed Time Analysis
4. Cross-tier correlation with DB
Oracle AD4J
7
© 2008
Systemaufbau
Quelle: „Oracle Application Diagnostics for Java (AD4J)“, OTN
Oracle AD4J
8
© 2008
Installation
ƒ Console Installation
à Console Web-Applikation (JServ)
à AD4J Repository – Postgres DB
à Certification Authority (CA) und self-signed Certificate
für HTTPS Zugriff auf Web-Applikation
à Abhängig von OS-Plattform
ƒ Windows, Linux, AIX, Solaris, HP-UX
ƒ Agent Installation
à Download Agent aus der Console
à Java Agent – local-remote, WAR-EAR, standalone ZIP
ƒ Abhängig von zu beobachtender JVM
ƒ JDK 1.3.1-1.6
à DB Agent – 32/64 bit, OS-abhängig
ƒ Oracle 8i-11g, keine Windows-DB Unterstützung
Oracle AD4J
9
© 2008
Deployment
ƒ Hot Deployment bei Web und Application Servern
à Kein Restart von Applikation oder Server notwendig
ƒ Keine Änderungen an JVM-Parametern oder der
Applikationskonfiguration
ƒ JVM Schnittstelle JVMPI/JVMTI (Java Virtual Machine Tool
Interface) wird nicht verwendet
à Kein Classloader “Zirkus”
ƒ Standalone Application
à AD4J Agent startet zu untersuchende Applikation
à Parameter „ jamisdaemon = true“
ƒ Agent verwendet JNI – OS abhängige shared Lib
Oracle AD4J
10
© 2008
Agenda
ƒ Einführung AD4J
ƒ Kundeneinsatz
ƒ Fazit
Daten sind
immer im Spiel.
Oracle AD4J
11
© 2008
Kundeneinsatz - Problembeschreibung
ƒ System:
à OutputManagement System mit Input als Word-Serienbrief und
Output als AFP-Stream
ƒ Problembeschreibung:
à „Auf dem produktiven System tritt während der Verarbeitung von
HTTP-Requests auf dem Server eine OutOfMemoryExceptions auf
(Java Heap Space). D.h., dass zu diesem Zeitpunkt die JVM nicht
mehr genügend freien Speicher zur Verfügung hat, um neue
Speicheranforderungen zu bedienen.“
ƒ Der Fehler tritt nahezu täglich auf
à Auf Fehler folgt manueller Reboot
à Es kann bis zum nächsten Fehler wieder gedruckt werden
Oracle AD4J
12
© 2008
Potentielle Ursachen – „Is it a Bug or a Feature?“
ƒ Das Problem kann verschiedene Gründe haben:
à Die Ressourcen von Tomcat sind zum Zeitpunkt des Fehlers
vollständig belegt, weil entsprechend viele Sessions parallel arbeiten
à Bei jedem HTTP Request geht Speicher verloren, d.h., es werden
Objekte in der JVM nicht freigegeben, obwohl sie nicht mehr
gebraucht werden (Memory Leak)
ƒ Falsche Konfiguration in der Applikation oder in Tomcat
ƒ Bug in der Applikation bzw. den verwendeten Libraries
ƒ Î AD4J Usage Scenario „Memory Leak Detection and Analysis“
Oracle AD4J
13
© 2008
Vorgehen
ƒ Ziel
à Verantwortliche Objekte für den Speicherzuwachs identifizieren
ƒ Maßnahme
à Untersuchung von mehreren Heap Dumps
ƒ Durchführung
1. Word erzeugt ein Serienbrief (ca. 70 Seiten)
1.
Mittels mehreren HTTP-Requests an OMS übergeben
2. OMS verarbeitet das Dokument
3. Nach ca. 5 min (eingestellter Session Timeout) wurde ein
Heapdump der Serverapplikation durchgeführt.
4. Dump wurde auf den AD4J Server Rechner übertragen
5. Dump in AD4J Console zur weiteren Analyse geladen
Oracle AD4J
14
© 2008
AD4J
ƒ Hinweis: Heapdump Verzeichnis konfigurieren
ƒ Dump erzeugen
Oracle AD4J
15
© 2008
Heap Usage
ƒ Nacheinander Heapdumps in AD4J laden
ƒ Compare Heaps
à Mittels eines DIFF
zweier aufeinander
folgender
Heapdumps ergibt
sich in AD4J
2
1
3
Oracle AD4J
16
© 2008
Compare Heap
ƒ Speicherverbrauch des Heaps von einem Druck zum nächsten
ƒ Klick auf „Dictionary“
führt zur detaillierten
Darstellung der abhängigen Objekte
Oracle AD4J
17
© 2008
Ursache gefunden
ƒ Hauptverantwortlich Klassen für den Speicherzuwachs gefunden
ƒ Drilldown der Objekte möglich
à Ansicht von Children, Parents und Roots
Oracle AD4J
18
© 2008
Standalone Application
ƒ Beispiel TOMAS
à Is there a memory leak?
ƒ Start der Komponente „Renderer“ mittels AD4J
à Skript:
java.exe
-Xmx512m
-Dlog4j.configuration=file:/config/log4j.properties
-cp tomas-rendering-0.5.0.jar;C:\tmp\jamagent.zip
jamagent.jamrun jamisdaemon=true jamjvmid=Renderer
com.trivadis.tomas.rendering.starter.RenderingStarter
%* config/rendering.xml
Oracle AD4J
19
© 2008
Agenda
ƒ Einführung AD4J
ƒ Kundeneinsatz
ƒ Fazit
Daten sind
immer im Spiel.
Oracle AD4J
20
© 2008
Fazit
ƒ Nachteile
à Web-lastig:
ƒ HTTP Request/Response als „natürliche“ Klammer
ƒ Was ist mit Demons/Standalone Applikationen?
à Webapplikation nicht ganz fehlerfrei
à Dokumentation sehr sparsam
ƒ Vorteile
à
à
à
à
Memory Leak Detection funktioniert einfach
Easy to install
Easy to use
In produktiven System einsetzbar, geringer Overhead
ƒ Als Überwachungstool für sensitiven Zeitraum nutzbar
Oracle AD4J
21
© 2008
Ressourcen
ƒ Trivadis:
à http://blog.trivadis.com/blogs/christianantognini/archive/2009/02/13/or
acle-ad4j-installation-on-linux.aspx
ƒ OTN:
à http://www.oracle.com/technology/software/products/oem/htdocs/jade.html
à http://www.oracle.com/enterprise_manager/fusion-middleware-managementpacks.html
à http://www.oracle.com/technology/products/oem/mgmt_solutions/apm.html
à http://www.oracle.com/technology/products/oem/as_mgmt/index.html
ƒ http://oukc.oracle.com/static05/opn/oracle9i_database/47240/021408_4
7240_source/index.htm, Flash Slide Show (Hörspiel)
ƒ www.ukoug.org/assets/uploads/otherpages/MarkMcGillJava15.25.pdf
Oracle AD4J
22
© 2008
Weitere Fragen?
Trivadis finden Sie auf
Ebene 3 – Stand Nr. 304
?
www.trivadis.com
Basel
·
Baden
·
Bern
·
Lausanne
·
Zürich
·
Düsseldorf
·
Frankfurt/M.
·
Freiburg i. Br.
·
Hamburg
·
München
·
Stuttgart
·
Wien