Startseite       Produkte       White Papers       Unternehmen       Support       Live Chat    
Startseite » Produkte » Argent for Java
Argent for Java
 
Das von Technologievisionär James Gosling Mitte der 1990er-Jahre entwickelte und konzipierte Java ist eine sehr beliebte Programmiersprache, die von vielen Software-Entwicklern genutzt wird. In Java geschriebene Programme sind heute auf Millionen von Geräten weltweit im Einsatz.

Java ist in aller Munde.

Mobiltelefone mit dem Betriebssystem Android von Google sind von zentraler Bedeutung. Während Android den Markt der Smartphones dominiert, kommt Java in zunehmendem Maße in Haushaltsgeräten (Fernseher, Kühlschränke, Geschirrspüler und Sicherheitsanlagen) zum Einsatz. Java ist eine wichtige Technologie, die für ein explosionsartiges Wachstum des Internets sorgt, vor allem intelligenten Geräten und dem „Internet der Dinge“. Die Liste der Java-fähigen Computer und Geräte wächst tagtäglich und lässt sich deshalb kaum mehr beziffern.

Für die schnelle Akzeptanz und große Verbreitung von Java ist jedoch nicht nur der Erfolg von Android verantwortlich. Java kann ohne Weiteres auf eine Vielzahl unterschiedlichster Betriebssysteme und Plattformen portiert werden. Einsatzmöglichkeiten von Java sind Webanwendungen, mobile Apps sowie Programme mit komplexen Bedienoberflächen. Ebenso lässt sich Java zur Integration divergierender Legacy-Anwendungen in Extrakt-Transfer-Load- (ETL-) Szenarien nutzen. Aufgrund der Fülle von Java-Programmen, die überall gegenwärtig sind, ist es wichtig, die bereits vorhandenen und stetig neu hinzukommenden Java-basierten Anwendungen effizient überwachen und verwalten zu können.


Was ist Argent for Java?

Argent for Java ist eine umfassende Tracking-, Monitoring- und Managementlösung, die sich vorwiegend auf Java-basierte Anwendungen in Ihrem gesamten Unternehmen konzentriert.

Argent for Java verfügt über eine regelbasierte Überwachungsengine, die Statistiken und Kennzahlen über Ihre Java-Anwendungen sammelt und Berichte und Warnmeldungen über Ausnahmebedingungen generiert und ausgibt.


Warum Argent for Java?

Obwohl Java auf viele Betriebssysteme und Plattformen portiert und migriert wurde, wird die Sprach- und Laufzeit-Performance nur selten für jede einzelne Plattform optimiert. Die Bereitstellung bestimmter Eigenschaften und Funktionen von Anwendungen hat bei unabhängigen Softwareanbietern (ISPs) und IT-Abteilungen oft Vorrang vor Leistung und Zuverlässigkeit.

Leistungsverhalten und Zuverlässigkeit unterliegen bei Java-basierten Anwendungen oft großen Schwankungen und sind nicht konsistent. Eine Java-Anwendung, die für eine UNIX-Plattform entwickelt wurde, läuft unter Umständen schlecht auf einer Windows-Plattform (und umgekehrt).

Nachverfolgung, Überwachung und Verwaltung der Performance und Ressourcenauslastung Ihrer Java-basierten Anwendungen sind von entscheidender Bedeutung, vor allem bei kundenseitigen Anwendungen und anderen Umgebungen im Dauerbetrieb.

Die Überwachung der Prozessor- und Speicherauslastung kann Ihnen zwar nützliche Informationen liefern, sie hilft Ihnen aber nicht bei der Zuordnung dieser Daten zu Ihren Java-Anwendungen.

Mit Argent for Java können Sie Ihre Java-Anwendungen einfach und effizient verwalten. Speicherlecks, von Deadlock betroffene oder gesperrte Threads, CPU-Überlastung u. v. m. gehören mit Argent for Java der Vergangenheit an.

Argent for Java sorgt für einen unternehmensweit zuverlässigen und störungsfreien Betrieb Ihrer Java-basierten Anwendungen.

Argent for Java überwacht sowohl JVMs als auch Datenbankserver mittels Java Management Extensions (JMX).


Die Java Virtual Machine (JVM)

In Java ist eine Design-Architektur integriert, die als Java Virtual Machine (JVM) bezeichnet wird. Bei der JVM handelt es sich um einen Hypervisor, der speziell für ihn geschriebene Java-Programme ausführt. Eine Implementierung der JVM trägt dazu bei, Java auf einer speziellen Plattform oder einem bestimmten Betriebssystem zur Verfügung zu stellen. Ohne eine Implementierung der JVM ist das Ausführen von Java-Programmen grundsätzlich nicht möglich. Java-Programme, die auf der JVM laufen, gewährleisten Plattformunabhängigkeit. Dies beruht darauf, dass JVM die Befehle des Java-Programms in die Systemsprache der Maschine oder des Geräts, auf dem die JVM und das Java-Programm installiert sind, umwandelt.

Beim Starten einer Java-Anwendung wird dafür eine JVM instanziiert, die bis zum Schließen der Anwendung im Speicher erhalten bleibt. Innerhalb eines bestimmten Betriebssystems existieren daher zeitgleich so viele JVMs, wie Java-Anwendungen gestartet werden.

Unter Microsoft Windows ist dies vergleichbar mit dem Ausführen einer Konsolenanwendung in einem DOS-Eingabeaufforderungsfenster: Die Anzahl der DOS-Eingabeaufforderungsfenster ist identisch mit den Programmen, die über eine Kommandozeile ausgeführt werden.

Da JVM eine Laufzeitumgebung für eine Java-Anwendung ist, nimmt jede JVM wichtige Computerressourcen wie Speicher, CPU usw. in Anspruch.

Argent for Java sammelt wichtige statistische Daten zur JVM (und dementsprechend für die begleitende Java-Anwendung).

Es werden u. a. folgende Metriken und statistische Daten erfasst: Arbeitsspeicher- und CPU-Auslastung, verbrauchte CPU-Zeit, Thread- und Handle-Nutzung, Thread-Anzahl, Sperren/Deadlocks und vieles mehr.

Argent for Java behält außerdem den Überblick über vergleichbare Metriken des Host-Rechners, auf dem die JVM instanziiert wurde.


Arbeitsspeicherverwaltung

Innerhalb einer JVM-Instanz muss Arbeitsspeicher für neue Objekte zugewiesen werden. Bei der Speicherzuordnung für jede JVM wird zwischen zweierlei Kategorien unterschieden: Heap-Speicher und Non-Heap-Speicher


Heap-Speicher

Die JVM weist den Java-Heap-Speicher vom Betriebssystem zu und verwaltet ihn für die in der virtuellen Umgebung ausgeführte Java-Anwendung. Jedes Mal, wenn die Java-Anwendung ein neues Objekt erstellt, gibt die Java Virtual Machine einen benachbarten Speicherplatz oder ein Array auf dem Heap-Speicher frei, um es auf Teilen des Heap zu speichern, die bereits vom Betriebssystem zur Verfügung gestellt wurden. Häufig von anderen Objekten referenzierte „lebendige“ Objekte werden dynamisch im Heap vorgehalten, während nicht mehr referenzierte Objekte wieder aus dem Heap entfernt bzw. durch die JVM per Garbage Collection freigegeben werden. Der Heap-Speicher wird dadurch bereinigt.

Die neu erstellten und als „junge“ Generation bezeichneten Objekte werden von den JVM-Algorithmen verwaltet und in den Bereich der „alten“ Generation umgestuft, nachdem sie einige Garbage-Collection-Prozesse durchlaufen haben. Die junge Generation hält an einem kleinen, aber extrem aktiven Bereich des Heaps fest, in dem neue Objekte zugeordnet werden. Wenn der von der jungen Generation belegte Speicherbereich gefüllt ist, wird ein als „Young Collection“ bezeichneter Garbage-Collection-Prozess ausgelöst, in dessen Verlauf Teile der jungen Heaps freigegeben werden, indem Objekte im ältesten Teils der „jungen“ Heaps in den „alten“ Heap wandern oder dort angelegt werden. Dadurch werden Bereiche des jungen Heaps frei, in dem die JVM neue Objekte ablegen kann. Mit der „Old Collection“ werden Bereiche des alten Heaps mittels Garbage-Collection im alten Heap freigegeben.

Der Heap-Speicher der jungen Generation wird wieder in den Eden- und den Survivor-Speicherbereich aufgeteilt.

PRODUKTE
 
WHITE PAPERS

UNTERNEHMEN

DOKUMENTATION
Leistung gesichert durch Argent Defender Ultra®