JSF-Frameworks. Mit. Java Persistence API. Sonderdruck. Im Komponenten-Dschungel PLUS. Einführung in den neuen Java- Persistenz-Standard

Größe: px
Ab Seite anzeigen:

Download "JSF-Frameworks. Mit. Java Persistence API. Sonderdruck. Im Komponenten-Dschungel PLUS. Einführung in den neuen Java- Persistenz-Standard"

Transkript

1 12.07 Deutschland 7,50 Österreich 8,60 Schweiz sfr 15,80 Mit Stellenmarkt S. 52 Mit CD Testversionen & more Acegi Security Selenium Eclipse RAP 1.0 wings 3.0 Glazed Lists 1.7 Maven 2.0 Grails 0.6 MyFaces Core PLUS weitere Top-Tools Infos auf S. 35 Komplettes Buch auf CD! JSF-Frameworks Im Komponenten-Dschungel Java Persistence API Einführung in den neuen Java- Persistenz-Standard Spring aber sicher! Authentifizierung mit Spring Security Java Performance Tools Tuning und Troubleshooting Color Modelling Farbige Domänenmodelle erstellen Einstieg in Eclipse RCP Thinking in Plug-in Sonderdruck der Firma codecentric Lesen Sie im Heft ab Seite 37! D

2 Java Performance Tools, Teil 1: Grundlagen Tuning und Troubleshooting VON MIRKO NOVAKOVIC UND MARC VAN DEN BOGAARD Die JVM bietet integrierte Technologien und Tools für Java Performance Tuning und Troubleshooting an. Ein tieferes Verständnis der Grundlagen und Benutzung dieser Werkzeuge hilft jedem Java-Entwickler bei der Analyse von Performance- und Stabilitätsproblemen. Die Analyse von Performance- und Stabilitätsproblemen kann sehr zeitaufwändig und kritisch sein. Gerade die Analyse von schwer reproduzierbaren Fehlern in produktiven Umgebungen ist ohne den Einsatz der richtigen Werkzeuge fast unmöglich. Java bietet mit JVMTI und JMX zwei Technologien, die die Grundlage für fast alle kommerziellen Werkzeuge sind. Der erste Teil dieser Artikelserie beschäftigt sich mit diesen Basistechnologien für Performance Tuning und Troubleshooting sowie den JVM Tools, die für die Auswertung der bereitgestellten Daten, Dumps und Logdateien genutzt werden können. Java wird immer stärker für unternehmenskritische Anwendungen eingesetzt und die Komplexität dieser Anwendungen nimmt tendenziell zu. Die Zentralisierung der Anwendungen auf Basis von Java EE und der Einsatz von Application-Servern bedeuten im Vergleich zu früheren Client-Server-Anwendungen eine erhöhte Parallelität und Belastung der Server. Gestiegene Anforderungen an Performance, Skalierbarkeit und Verfügbarkeit führen unweigerlich zu verteilten Systemarchitekturen mit Clustern von Webservern, Application Servern und Datenbanken. Die Verteilung dieser Anwendungen bedingt auch eine Replikation von Statusinformationen und gesteigerte Netzwerklast durch entfernte Service-Aufrufe. Mit serviceorientierten Architekturen (SOA) nimmt der Trend zur Verteilung von Anwendungen stärker zu, wobei meistens auch die Anforderungen an Performance und Verfügbarkeit der zentral genutzten Services an Bedeutung gewinnt. In diesen Umgebungen ist eine Analyse von Performance-Engpässen und Stabilitätsproblemen extrem schwierig, da sehr viele Komponenten bei einer fachlichen Transaktion beteiligt sind. Die häufigs- 2 Sonderdruck

3 ten technischen Probleme komplexer Java-Anwendungen sind dabei: Schlechte Performance Memory Leaks und OutOfMemoryError Garbage Collection Overhead Deadlocks und Loops Synchronisations- und Thread-Safety- Probleme. Die Auswirkungen dieser Probleme sind vielfältig und reichen von schlechten Antwortzeiten, einer geringen Anzahl paralleler Benutzer, bis hin zu einem Ausfall des gesamten Systems und korrupten Daten. Dies führt bei geschäftskritischen, produktiven Systemen unweigerlich zu einer Eskalation im Management, an deren Ende leider immer die Entwickler stehen. Die Aufgabe ist klar und einfach formuliert: Die Probleme schnell identifizieren und noch schneller beseitigen. Aber wie? Tools für die Analyse Es gibt unterschiedliche Tools, um die beschriebenen Probleme zu analysieren. Eine der entscheidenden Fragen ist, wie viele Informationen man für die Lösungsfindung benötigt und unter welchen Bedingungen man eine Analyse durchführen kann. Eine Faustregel ist: Je mehr Daten von einem Tool gesammelt werden, desto höher ist der Einfluss des Tools auf die Anwendung selbst. Es gibt zum Beispiel kein Tool, das einen kompletten Memory Dump inklusive Referenzen erzeugen kann, ohne das System de facto zum Stillstand zu bringen. Aus diesem Grund unterscheidet man drei Arten von Tools: Monitoring-Tools eignen sich für den Einsatz in produktiven Umgebungen. Diese Tools haben einen akzeptablen Overhead und liefern Informationen über Probleme in laufenden Anwendungen bis auf Komponentenlevel. Mithilfe von Trendanalysen und längerfristigen Betrachtungen, können Probleme proaktiv vermieden werden. Diagnose-Tools sind für den Einsatz in Integrations- und Testumgebungen geeignet. Diese Tools können auch unter erzeugter Last detaillierte Analysedaten bis auf Methodenlevel liefern und haben noch einen akzeptablen Overhead. Gerade für Probleme, die nur unter erhöhter Belastung auftreten und nicht in der Entwicklungsumgebung, sind diese Tools unverzichtbar. Profiler und Memory Debugger sind für den Einsatz in der Entwicklungsumgebung ausgelegt und können Performance-Informationen bis auf Zeilenebene liefern. Mithilfe von Memory Debuggern können zudem Memory Leaks analysiert werden. Der Overhead, gerade bei der Memory-Analyse, ist sehr hoch und man kann diese Tools nicht in produktiven Umgebungen einsetzen. Im Folgenden werden die Technologien beschrieben, auf denen diese Tools basieren. Des Weiteren werden die integrierten Tools in der JVM und dem JDK vorgestellt und anhand von Problemszenarien beschrieben. JVM Tooling Interface Die Java Virtual Machine verfügt seit der Version 1.2 über eine Schnittstelle für Profiling Tools, das Java Virtual Machine Profiling Interface (JVMPI). Die Schnittstelle definiert die Funktionen für einen in C oder C++ geschriebenen Agenten, der sich für die wichtigsten JVM Events registrieren kann. Zu den Events, für die sich ein Agent registrieren kann, zählen: JVM Life Cycle Events: Für die Initialisierungsphase der JVM Class Life Cycle Events: Load und Unload einer Klasse. Der Profiling Agent hat zusätzlich die Möglichkeit, den Inhalt der Klasse zu lesen und zu verändern Thread Life Cycle Events: Für das Erzeugen und Zerstören von Threads Objekt Life Cycle Events: Bei Allokation, Löschen und Verschieben von Objekten auf dem Heap durch den Garbage Collector Method Call Events: Entry und Exit jeder aufgerufenen Methode Monitor Event Anfrage, Enter, Exit und Wait auf einen Java-Monitor (synchronized und Object.wait()) GC Events: Beim Start und Ende der GC-Phase. Neben diesen Events besteht die Möglichkeit, über den Agenten einen vollständigen Heapdump zu erzeugen, das heißt, alle Objekte auf dem Heap inklusive der Referenzen in eine Datei zu schreiben. JVMPI ist allerdings kein Standard und muss somit nicht zwingend von allen JVM-Herstellern unterstützt werden bzw. kann in der Implementierung abweichen. Mit JSR 163 (Java Platform Profiling Architecture) wurde ein Standard entwickelt, der in Java 5 als Java Virtual Maschine Tool Interface (JVM- TI) eingegangen ist. JVMTI basiert auf dem Agenten-Konzept von JVMPI, sodass auch hier ein C- oder C++-Agent entwickelt werden muss, der sich dann für bestimmte Events registrieren und Funktionen der JVM steuern kann. Eine weitere, sehr interessante Erweiterung von JVMTI ist, dass der Inhalt einer Klasse nicht mehr nur zur Ladezeit verändert werden kann, sondern auch dynamisch zu einem späteren Zeitpunkt des Lebenszyklus einer Klasse. Die Events von JVMPI und JVMTI liefern die benötigten Daten, um Performance, Speicher, Threading- und Garbage-Collection-Probleme im Detail zu analysieren. Das ist auch der Grund, warum Java Profiling und Memory Debugger fast ausschließlich auf Basis dieses Agentenkonzepts funktionieren. Der hohe Detailgrad hat aber seinen Preis und resultiert in einem Performance Overhead, der zu groß ist, um diese Tools in Produktion oder Lasttestumgebungen in vollem Umfang einzusetzen. Monitoring und Diagnose-Tools, die mit geringem Overhead arbeiten, nutzen daher in der Regel eine Form der Bytecode-Instrumentierung für die Erfassung von Laufzeitdaten. Bytecode-Instrumentierung Mit Bytecode-Instrumentierung werden die Techniken zur nachträglichen Veränderung des compilierten Bytecodes einer Java-Anwendung bezeichnet. Performance Tools nutzen diese Technik, um den eigentlichen Messcode in den bestehenden Applikationscode einzufügen. Mithilfe von Libraries wie der Apache Byte Code Engineering Library (BCEL) [1] wird der bestehende Bytecode analysiert und dann ein neuer Bytecode Sonderdruck

4 hinzugefügt oder ein bestehender Code verändert. Der Zeitpunkt der Manipulation ist allerdings je nach verwendeter Technologie unterschiedlich. Bei der statischen Bytecode-Instrumentierung wird der Bytecode vor dem Laden der Klassen mit einem Preinstrumentor instrumentiert. Der Bytecode läuft daher auf jeder JVM und es werden keine zusätzlichen Anpassungen oder Libraries zur Laufzeit benötigt. Nachteilig ist, dass ein manueller Schritt für die Instrumentierung notwendig ist und Systemklassen des Runtime Environment nicht instrumentiert werden können. Bei der Load-Time-Bytecode-Instrumentierung wird ein eigener Class- Loader verwendet, der beim Laden einer Klasse den entsprechenden Bytecode einfügt. Alternativ kann auch ein JVMPI-oder JVMTI-Agent verwendet werden, um beim entsprechenden Classloading Event den Inhalt der Klasse zu verändern. Man spart also im Gegensatz zum statischen Ansatz einen manuellen Schritt und kann auch Systemklassen instrumentieren. Dynamische Bytecode-Instrumentierung erlaubt es, den Bytecode einer Klasse auch nachdem sie bereits geladen ist, zu verändern. Diese Möglichkeit existiert erst seit Java 5 und wird daher erst von sehr wenigen Tools unterstützt. Das dynamische Instrumentieren von Klassen wird durch die RedefineClasses-Funktion in JVMTI möglich. Neben JVMTI bietet Java 5 aber auch eine reine Java-Implementierung von Agenten für die dynamische Instrumentierung von Bytecode, die sich im Paket java.lang.instrument befindet. Eigene Agenten zu schreiben, ist relativ einfach, aber nicht nur für Performance-Messungen sinnvoll, deshalb soll nachfolgend beispielhaft die Implementierung eines Agenten in Java beschrieben werden. Das Package java.lang.instrument bietet Agenten die Möglichkeit, den Bytecode von Klassen dynamisch zu verändern. Die Manipulation des Bytecodes kann auf zwei Wegen geschehen. Zum einen zur Ladezeit durch eine Implementierung des Interfaces ClassFile- Transformer. Zum anderen zur Laufzeit, das heißt, auch nachdem Klassen bereits durch einen ClassLoader geladen wurden. Letzteres geschieht durch die Methode redefineclasses(), welche im Interface Instrumentation definiert ist. Zur Veranschaulichung soll ein einfacher Agent entwickelt werden, der beim Laden jeder Klasse eine Meldung mit dem Namen der Klasse auf der Konsole ausgeben soll. Die Dokumentation des java.lang.instrument-pakets gibt eine Übersicht über Anforderungen an einen Agenten und wie dieser eingebunden wird. Um einen eigenen Agenten zu entwickeln, wird eine Bootstrap-Klasse benötigt. Diese muss über eine Methode mit einer Signatur verfügen, die vergleichbar mit der main-methode für Java-Applikationen ist: public static void premain(string agentargs,... Instrumentation instrumentation){ Der Methode werden die Parameter für den Agenten übergeben sowie eine Instanz vom Typ java.lang.instrumentation, die Funktionen zur Instrumentierung von Java-Klassen bietet. Die Veränderung des Bytecodes erfolgt entweder über eine eigene ClassFileTransformer-Implementierung für die Manipulation beim Laden oder Redefinition der Klasse oder direkt über eine neue Klassendefinition vom Typ ClassDefinition, wenn eine Klasse geändert werden soll, die bereits geladen ist. Wird der Bytecode einer bereits geladenen Klasse mit der redefineclasses()- Methode überschrieben, hat dies nur Auswirkungen auf zukünftig aufgerufene Instanzen der Klasse. Instanzen der Klasse die sich in einem aktiven Stack Frame befinden, bleiben von der Änderung unberührt. In dem Beispiel wird ein eigener ClassFileTransformer verwendet, um die Namen der geladenen Klassen auf die Konsole zu schreiben und sie dann unverändert weiterzureichen. Die Implementierung des Interface benötigt nur eine Methode: package de.codecentric.transformer; import java.lang.instrument.classfiletransformer; import java.lang.instrument.illegalclassformatexception; import java.security.protectiondomain; public class LogClassFileTransformer implements ClassFileTransformer { public byte[] transform(classloader loader, String classname, Class<?> classbeingredefined, ProtectionDomain protectiondomain, byte[] classfilebuffer) throws IllegalClassFormatException { System.out.println( Transformiere die Klasse + classname + ); return null; Nachdem der LogClassFileTransformer mit addtransformer() bei der Instrumentation-Instanz registriert wurde, wird bei jeder Definition oder Redefiniton einer Klasse die Methode transform( ) aufgerufen. Eine Klassendefiniton erfolgt über ClassLoader.definineClass() während Klassenredefinitionen über Instrumentation.redefineClasses() erfolgen. Innerhalb der Methode ist es möglich, den Bytecode der Klasse zu verändern. Der Bytecode muss dem Classfile-Format der JVM-Spezifikation [2] entsprechen. An dieser Stelle bieten sich zur vereinfachten Manipulation verschiedene Open-Source-Tools wie Apache BCEL, ObjectWeb ASM [3] oder JBoss Javassist [4] an. In unserem Beispiel wird die Klasse nicht verändert, weshalb in der transform()-methode null zurückgeliefert wird. Der Code für den Agenten sieht wie folgt aus: package de.codecentric.instrument; import java.lang.instrument.instrumentation; import de.codecentric.transformer. LogClassFileTransformer; public class JMVTIAgent { public static void premain(string agentarguments, Instrumentation instrumentation) { instrumentation.addtransformer( new LogClassFileTransformer()); Der Agent kann jetzt mit jeder beliebigen Java-Anwendung zusammen gestartet Sonderdruck

5 werden, um die Klassennamen auf der Konsole auszugeben. Hierzu muss der Agenten-Code aber noch in ein JAR gepackt werden, das über eine spezielle MA- NIFEST.MF-Datei verfügt: Abb.1: Java Management Layer Manifest-Version: 1.0 Premain-Class: de.codecentric.instrument.jmvtiagent Mithilfe des Java-Kommandozeilen-Parameters -javaagent:jarpath[=options] kann der Agent und die agentenspezifischen Parameter definiert werden. Das Beispiel zeigt, dass man mit einem java. lang.instrument-agenten ohne C oder C++ Code schreiben kann, der spezifische Funktionen in bestehende Java-Anwendungen einfügen kann. Viele AOP Frameworks basieren auf dieser Technologie, um Aspekte in die Anwendungen zur Laufzeit einzuweben. Für Profiler- und Diagnose-Tools ist vor allem die Plattformunabhängigkeit des Agenten und die Möglichkeit, Klassen dynamisch zu verändern, interessant. Die Technologie ermöglicht zum Beispiel das Entfernen und Hinzufügen von Messpunkten zur Laufzeit. Java Management Extension (JMX) Neben den Laufzeitinformationen, die über die Bytecode-Instrumentierung erzeugt werden, sind für das Monitoring von Anwendungen vor allem auch Informationen über die Infrastrukturkomponenten notwendig. Hierzu zählen auf der untersten Ebene Informationen der JVM, wie Heap-Statistiken oder Thread Informationen. Bei Java EE ist aber auch die Auslastung der Application-Server-Ressourcen notwendig, um Performance-Engpässe identifizieren zu können. Beispielsweise können zu klein gewählte Thread- und Datenbank-Connectionpools dazu führen, dass Benutzeranfragen in einer Warteschlange landen und sich die Verarbeitung verzögert. Aber auch Statistiken von Caches aus eigenen Komponenten oder Frameworks wie Hibernate [5] sind von Bedeutung, wenn ein Bottleneck in einer Anwendung gefunden oder Ressourcen-Engpässe in Produktion frühzeitig identifiziert werden sollen. Mit der Java Management Extension (JMX) steht eine ausgereifte Spezifikation zur Verfügung, die eine Überwachung von Applikationen und Services einfach möglich macht. Anzeige NEU! TM Das neue Portal für Java, Enterprise Architekturen, SOA. Sonderdruck

6 Abb. 2: Heap Memory Usage in der JConsole JMX besteht aus der Java Management Extensions Instrumentation and Agent Specification (JSR 3) und dem Java Management Extensions Remote API (JSR 160). Seit Java 5 ist JMX ein Teil der Java Standard Edition und somit in jeder JVM verfügbar. Die Basis von JMX bilden so genannte MBeans, die eine Java-Ressource (in den meisten Fällen ein Objekt) verwalten und überwachen. Das MBean Design und die Schnittstellen werden durch JSR 3 definiert. Das MBean Design ist flexibel und einfach zu implementieren, wobei existierende Ressourcen statisch oder dynamisch managebar gemacht werden können. MBeans können Attribute enthalten, die zur Laufzeit abgefragt und verändert werden können. Operationen bieten zudem die Möglichkeit, bestimmte Managementfunktionen zu veröffentlichen und aufzurufen. Des Weiteren kann ein MBean Notifikationen über bestimmte Events empfangen und versenden. Ein Beispiel für eine MBean-Ressource könnte ein Cache sein, der seine Attribute (Anzahl Einträge ) und Operationen (Cache löschen ) über JMX freigibt. Monitoring-Applikationen können auf Basis dieser Informationen die Auslastung des Caches überwachen und bei Bedarf den Cache automatisiert löschen. Ein Java Cache mit dem Namen Cache kann als MBean freigegeben werden, indem es ein bestimmtes Interface implementiert: CacheMBean. Alle Methoden und Attribute Getter/Setter aus diesem Interface werden nach der Registrierung des MBeans am MBeanServer automatisch über JMX freigegeben. Diese Art von MBeans wird Standard MBean genannt. Sind die Sourcen einer Klasse nicht verfügbar, kann auch ein dynamischer Mechanismus verwendet werden, um Objekte als MBeans zu deklarieren. Dabei wird eine Instanz vom Typ MBeanInfo erzeugt, die alle Informationen über das Management Interface enthält diese Form der MBeans wird Dynamic MBean genannt. Ein Vorteil von Dynamic MBeans ist vor allem die Möglichkeit, Attribute und Operationen zur Laufzeit über JMX freizugeben bzw. die Freigabe wieder aufzuheben. Viele Frameworks erleichtern die Erzeugung und Verwaltung von MBean, so können z.b. Objekte, die über den Springframework IoC Container [6] erzeugt werden, mithilfe des MBeanExporter von Spring deklarativ als JMX MBean registriert werden. Mit JSR 160 wurde auch der Zugriff auf die MBean standardisiert. Prinzipiell kann über beliebige Protokolle mit den MBeans kommuniziert werden im Standard enthalten sind ein RMI Connector, ein JMXMP Connector und ein SOAP Connector. Der Zugriff kann über JAAS abgesichert werden, sodass Unbefugte keinen Zugriff auf die MBeans bekommen. Mithilfe von JMX können Applikationen sehr einfach ein Management Interface anbieten, das von Monitoring- Tools zur Überwachung genutzt werden kann. Ab Java 5 gibt es aber mit java.lang. management auch ein API für das Management der JVM auf Basis von JMX. Das API definiert neun MBeans für die Überwachung und das Management von ClassLoading, Compilation, Memory, Threads, Runtime, Operating System, Garbage Collector, Memory Manager und Memory Pool. Es werden zum Beispiel detaillierte Heap-Informationen über Auslastung und maximale Größe für alle Heap-Bereiche, wie Young-, Tenuredund PermGen Spaces geliefert. Mithilfe dieser Informationen können die Einstellungen des Heaps auf Basis von echten Daten aus der Produktionsumgebung angepasst und optimiert werden. Mit Java 5 wird auch das Tool jconsole mitgeliefert, das den Zugriff auf MBeans ermöglicht und zudem angepasste Sichten auf die JVM-integrierten MBeans bietet. Abbildung 2 zeigt die Darstellung des Heaps in jconsole. Bei den Application-Servern haben die Hersteller lange Zeit eigene Standards zur Überwachung bereitgestellt. JBoss AS und BEA Weblogic haben schon sehr früh JMX als Management- und Monitoring- Schnittstelle genutzt, während z.b. IBM WebSphere auf ein eigenes Framework mit dem Namen PMI gesetzt hat. Mit der Java EE Management Specification (JSR 77) wurde die Überwachung von Application- Servern und Java-EE-Anwendungen standardisiert. Die Spezifikation beinhaltet: Eine einheitliche Definition der MBean- Namen, sodass die Navigation und das Auffinden von MBean stark vereinfacht werden Standardisierte Events für wichtige Ereignisse im Java EE Application Server Sonderdruck

7 Den Status für die Überwachung der MBeans Rudimentäre Performance-Daten und Statistiken für die MBeans. Mithilfe von JSR 77 können Monitoring- Tools beispielsweise Statistiken über Aufrufanzahl, Performance-Daten (min, max, load, processing) und Fehler von Servlets, JSPs und EJBs auslesen. Einfache JMX Monitoring-Tools wie MC4J [7] bieten bereits vorkonfigurierte Dashboards für JSR-77-kompatible Server. Aktuell implementieren alle bekannten Application- Server JSR 77 in den neueren Versionen. JMX und die darauf basierenden Standards bieten eine gute Möglichkeit, die JVM und Application-Server zu überwachen. Zudem kann die eigene Anwendung einfach um Monitoring-Funktionen und -Daten erweitert werden. Viele Software- Komponenten und Frameworks bieten bereits integrierten Support für JMX, z.b. Hibernate oder log4j. Logdateien und Dumps Abb. 3: HPjtune GC Überblick Einige Probleme können nicht mit Bytecode-Instrumentierung oder JMX identifiziert und gelöst werden. Vor allem Memory Leaks, Garbage Collection Overhead und Thread Deadlocks fallen in diese Kategorie. Profiler können mithilfe der beschriebenen JVMPI-/JVM- TI-Events die benötigten Informationen auslesen, um diese Probleme zu analysieren. Allerdings ist dies in der Praxis häufig nicht möglich, da die Probleme oft nur unter realen Bedingungen in der Produktionsumgebung auftreten. In diesen Fällen ist der Einsatz eines Profilers nicht möglich, da der Overhead zu groß ist. Die JVM bietet einige Logdateien und Dumps an, um Produktionsprobleme offline zu analysieren. Mithilfe des Heapdumps können Memory Leaks in einer produktiven Anwendung analysiert werden. Die Sun HotSpot JVM ermöglicht Heapdumps mit dem integrierten HPROF Profiler, der die Referenzimplementierung von JVMTI ist. Der HPROF- Profiler wird über den mitgelieferten Agenten mit dem Startparameter -agentlib:hprof=heap=dump,format=b aktiviert. Dabei bewirkt der erste Parameter hprof=heap die Aktivierung des Heapdumps und mit dem Parameter format=b wird das Format des Heapdumps auf ein Binärformat gesetzt. Ist dieser Parameter gesetzt, wird automatisch ein Heapdump beim Beenden der JVM erzeugt dies ist z.b. auch der Fall, wenn sich die JVM aufgrund eines java.lang.outofmemory- Error beendet. Manuell kann der Dump auch über Ctrl-\ oder Ctrl-Break in der Konsole erzeugt werden. Ab Java 6 wird in der Sun HotSpot JVM das JVM MBean HotSpotDiagnosticMBean bereitgestellt, über das ein manueller Heapdump ausgeführt werden kann. Ein Heapdump beinhaltet alle Objekte und deren Referenzen auf dem Heap die Dump Datei kann aufgrund der Datenmenge je nach eingestellter Heap-Größe sehr umfangreich werden. Mithilfe des Tools Hat [8] bzw. des JVM-Kommandozeilentools JHat kann der Heapdump auf Memory Leaks analysiert, sowie Objektgrößen und Objektmengen bestimmt werden. Moderne Profiler wie JProbe [9] oder JProfiler [10] erlauben zudem, die Heapdumps in das interne Format des Profilers zu konvertieren, sodass die komfortablere Oberfläche der Tools zur Analyse genutzt werden kann. IBM stellt für seine Heapdumps (das Format unter- scheidet sich von dem HPROF-Format) das kostenfreie Analysetool IBM Heap- Analyzer [11] zur Verfügung. Um Garbage Collection Probleme aufgrund so genannter Cycling Objects oder falscher Heap-Einstellungen zu identifizieren, definiert die JVM-Spezifikation den Parameter verbose:gc. Die erzeugten Logausgaben geben die Heap-Auslastung vor und nach dem GC sowie die maximale Heap-Größe und die Dauer der GC-Aktivität an. Die Sun HotSpot JVM bietet noch erweiterte Parameter für die Analyse, die mit -XX:+PrintGCDetails aktiviert werden können. Der Parameter bewirkt, dass detailliere Informationen über die Young Generation des Heaps ausgegeben werden. Es gibt noch einige weitere Parameter, um die Analysedaten zu erweitern. Diese können in den HotSpot-JVM-Optionen [12] nachgelesen werden. Die Analyse der Logdateien hilft, die Parameter für Heap-Größen und GC- Einstellungen zu optimieren. Die Auswertung der Loginformationen auf Basis von Textdateien kann sehr zeitaufwändig und fehleranfällig sein. HP bietet mit dem kostenlosen Tool HPjtune [13] eine Möglichkeit, die Analyse zu vereinfachen. Das Tool fasst alle wichtigen Daten der Da- Sonderdruck

8 tools Hier muß Text hin tei zusammen und stellt den Verlauf des Heaps und der GC-Aktivitäten in Form von Graphen dar. Abbildung 3 zeigt das Tool im Einsatz. IBM bietet für sein XMLbasiertes Logformat ein eigenes kostenloses Tool mit dem sprechenden Namen IBM Pattern Modeling and Analysis Tool for Java Garbage Collection [14]. Thread Deadlocks und Loops können ein System stark belasten oder sogar zu einem kompletten Stillstand des Systems führen. Gerade wenn diese Situationen nur sehr selten auftreten, ist eine Analyse schwierig. Mit dem Thread Dump bietet Java aber auch hierfür eine funktionierende Lösung an. Der Threaddump beinhaltet alle Threads inklusive der Thread- Stacktraces zum Zeitpunkt der Erzeugung des Dumps. Der Dump beinhaltet zudem Informationen über Monitore und blockierte Threads, die auf einen bestimmten Monitor warten. Deadlocks werden automatisch erkannt und die beteiligten Threads und Monitore zu Beginn des Dumps ausgegeben. Ein Threaddump kann wie ein Heapdump über Ctrl-\ oder Ctrl-Break oder mithilfe des mitgelieferten Tools jstack erzeugt werden. Das ThreadMXM- Bean liefert ab Java 5 zudem eine Operation zum Erzeugen des Dumps über JMX. Auch bei diesem Dump ist die Auswertung nicht immer trivial und zeitaufwändig. Das Thread Dump Analysis Tool [15] liefert eine kostenlose graphische Oberfläche zur Analyse. Auch IBM bietet für sein Format ein alphaworks Tool mit dem Namen IBM Threaddump Analyzer [16]. Fazit und Ausblick Der erste Teil dieser Artikelserie hat die Grundlagen von JVMTI und java.lang.instrument für die Analyse von Laufzeiten in Java beschrieben. Diese Technologie in Verbindung mit Bytecode-Instrumentierung ist die Basis für fast alle kommerziellen Profiler- und Diagnose-Tools. JMX und java. lang.management sowie JSR 77 für Java EE Monitoring liefern die Basisdaten für das Monitoring von Java Applikationen. Zudem ist JMX ein Framework um eigene Monitoring und Management-Funktionen in Applikationen einzubauen. Abgerundet werden diese Funktionen der JVM von den Log- und Dumpdateien, die eine detaillierte Analyse von Memory Leaks, Garbage Collection- und Thread-Problemen auch in Produktionsumgebungen erlaubt. Zusammengenommen ergibt sich ein Werkzeugkasten, der hilft, Performance- und Stabilitätsprobleme zu analysieren und zu beheben. Mithilfe der vorgestellten kostenfreien Utilities lässt sich die Analyse komfortabler und einfacher gestalten. Im zweiten Teil der Serie sollen kommerzielle Profiler, Diagnose- und Monitoring-Tools vorgestellt werden, die auf den hier vorgestellten Technologien basieren. Dabei liegt der Schwerpunkt auf der Auswahl eines Tools für konkrete Einsatzszenarien und den erweiterten Möglichkeiten für die Analyse und das Monitoring im Vergleich zu den hier vorgestellten Basisfunktionen. Mirko Novakovic ist Geschäftsführer der codecentric GmbH und Spezialist im Bereich Performance Tuning, Java-EE-Architekturen und Open-Source-Frameworks. Marc van den Bogaard arbeitet als IT- Consultant in Open-Source-basierenden Java-EE-Projekten und berät Kunden bei Performance- und Stabilitätsproblemen. Links & Literatur [1] BCEL: jakarta.apache.org/bcel/ [2] The Java Virtual Machine Specification: java.sun.com/docs/books/jvms/ [3] ObjectWeb ASM: forge.objectweb.org/projects/asm/ [4] JBoss Javassist: labs.jboss.com/javassist/ [5] Hibernate JMX Statistics: html/session-configuration.html# configuration-optional-statistics/ [6] Spring JMX Support: static.springframework.org/ spring/docs/2.0.x/reference/jmx.html [7] MC4J: mc4j.org [8] Heap Analysis Tool: [9] JProbe: [10] JProfiler: jprofiler/overview.html [11] IBM HeapAnalyzer: [12] Sun Java HotSpot VM Options: java.sun.com/ javase/technologies/hotspot/vmoptions.jsp [13] HPjtune: java2/hpjtune/ [14] IBM GC Analyzer: tech/pmat/ [15] Thread Dump Analysis Tool: tda.dev.java.net [16] IBM Thread and Monitor Dump Analyzer: codecentric GmbH Grünewalder Str Solingen Ansprechpartner: Tim van Baars +49 (0) vanbaars@codecentric.de Sonderdruck

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS 072 MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS Die Flut von Open Source Frameworks ist vergleichbar mit dem Markt von kommerziellen Produkten Es gibt eine Vielzahl

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Eins für alles? Monitoring und Profiling mit VisualVM

Eins für alles? Monitoring und Profiling mit VisualVM Eins für alles? Monitoring und Profiling mit VisualVM Thomas Much thomas@muchsoft.com www.muchsoft.com Eins für alles / VisualVM Copyright 2009 Thomas Much 1 Referent Dipl.-Inform. Thomas Much IT-Architekt,

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

SolarWinds Engineer s Toolset

SolarWinds Engineer s Toolset SolarWinds Engineer s Toolset Monitoring Tools Das Engineer s Toolset ist eine Sammlung von 49 wertvoller und sinnvoller Netzwerktools. Die Nr. 1 Suite für jeden Administrator! Die Schwerpunkte liegen

Mehr

Schedulingund Thread-Ausführer

Schedulingund Thread-Ausführer Schedulingund Thread-Ausführer Scheduling Ein Scheduler arbeitet Programmstücke nach einer festen Zeitspanne oder zu einer fixen Zeitpunkt wiederholt oder einmal ab. Notwendigkeiten für Scheduling sind

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Installation von NetBeans inkl. Glassfish Anwendungs-Server Installation von NetBeans inkl. Glassfish Anwendungs-Server Diese Anleitung führt Sie Schritt für Schritt durch die Einrichtung der Entwicklungsumgebung NetBeans, angefangen beim Download der benötigten

Mehr

Benachrichtigungsmöglichkeiten in SMC 2.6

Benachrichtigungsmöglichkeiten in SMC 2.6 Benachrichtigungsmöglichkeiten in SMC 2.6 Support April 2011 www.avira.de Irrtümer und technische Änderungen vorbehalten Avira GmbH 2011 Benachrichtigungsmöglichkeiten in SMC 2.6 Folgende Benachrichtigungsmöglichkeiten

Mehr

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,

Mehr

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Inhaltsverzeichnis 1 Allgemein... 3 2 Erforderliche Anpassungen bei der Installation...3 2.1 Konfiguration Jboss 7 Applicationserver (Schritt 4/10)...3

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

3 Windows als Storage-Zentrale

3 Windows als Storage-Zentrale 3 Windows als Storage-Zentrale Windows als zentrale Datenspeichereinheit punktet gegenüber anderen Lösungen vor allem bei der Integration in vorhandene Unternehmensnetze sowie bei der Administration. Dabei

Mehr

Der beste Plan für Office 365 Archivierung.

Der beste Plan für Office 365 Archivierung. Der beste Plan für Office 365 Archivierung. Der Einsatz einer externen Archivierungslösung wie Retain bietet Office 365 Kunden unabhängig vom Lizenzierungsplan viele Vorteile. Einsatzszenarien von Retain:

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

CADEMIA: Einrichtung Ihres Computers unter Windows

CADEMIA: Einrichtung Ihres Computers unter Windows CADEMIA: Einrichtung Ihres Computers unter Windows Stand: 21.02.2015 Java-Plattform: Auf Ihrem Computer muss die Java-Plattform, Standard-Edition der Version 7 (Java SE 7) oder höher installiert sein.

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung ewon - Technical Note Nr. 004 Version 1.2 Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung 08.08.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten 3. Modemkonfiguration

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

tentoinfinity Apps 1.0 EINFÜHRUNG

tentoinfinity Apps 1.0 EINFÜHRUNG tentoinfinity Apps Una Hilfe Inhalt Copyright 2013-2015 von tentoinfinity Apps. Alle Rechte vorbehalten. Inhalt der online-hilfe wurde zuletzt aktualisiert am August 6, 2015. Zusätzlicher Support Ressourcen

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte I N F O R M A T I O N V I R T U A L I S I E R U N G Wir schützen Ihre Unternehmenswerte Wir schützen Ihre Unternehmenswerte Ausfallsicherheit durch Virtualisierung Die heutigen Anforderungen an IT-Infrastrukturen

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

ATHOS Benutzertreffen

ATHOS Benutzertreffen ATHOS Benutzertreffen Report of the Lab Glashütten, 10. November 2010 HighQSoft GmbH, Karst Schaap karst.schaap@highqsoft.de www.highqsoft.de / www.highqsoft.com 10 November 2010-1 Themen Aktueller Stand

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben.

Mehr

Java Entwicklung für Embedded Devices Best & Worst Practices!

Java Entwicklung für Embedded Devices Best & Worst Practices! Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard

Mehr

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

Mehr

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:

Mehr

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de Oracle GridControl Tuning Pack best Open Systems Day April 2010 Unterföhring Marco Kühn best Systeme GmbH marco.kuehn@best.de Agenda GridControl Overview Tuning Pack 4/26/10 Seite 2 Overview Grid Control

Mehr

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java Stand: 21.02.2015 Java-Plattform: Auf Ihrem Computer muss die Java-Plattform, Standard-Edition der Version 7 (Java SE 7) oder höher installiert

Mehr

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8 Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8 Schritt 1: Altes Modul-Paket vollständig deinstallieren Die neuen MRG-Module sind aus dem Scope local in den Scope

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

DCCP (Data Collection Cash Processing) Schaubild Version 1.0

DCCP (Data Collection Cash Processing) Schaubild Version 1.0 DCCP (Data Collection Cash Processing) OeNB Online Portal www.myoenb.com Schaubild Version 1.0 Stand 16. Jänner 2014 www.oenb.at - 1-1 oenb.info@oenb.at Allgemeines Damit die EZB und die OeNB die Einhaltung

Mehr

Avira Management Console 2.6.1 Optimierung für großes Netzwerk. Kurzanleitung

Avira Management Console 2.6.1 Optimierung für großes Netzwerk. Kurzanleitung Avira Management Console 2.6.1 Optimierung für großes Netzwerk Kurzanleitung Inhaltsverzeichnis 1. Einleitung... 3 2. Aktivieren des Pull-Modus für den AMC Agent... 3 3. Ereignisse des AMC Agent festlegen...

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

white sheep GmbH Unternehmensberatung Schnittstellen Framework

white sheep GmbH Unternehmensberatung Schnittstellen Framework Schnittstellen Framework Mit dem Schnittstellen Framework können Sie einerseits Ihre Schnittstellen automatisch überwachen. Eine manuelle Kontrolle wird überflüssig, da das Schnittstellen Framework ihre

Mehr

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline Öffentliche Ordner Offline INDEX Öffentliche Ordner erstellen Seite 2 Offline verfügbar einrichten Seite 3 Berechtigungen setzen Seite 7 Erstelldatum 12.08.05 Version 1.1 Öffentliche Ordner Im Microsoft

Mehr

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick Thementag OSGi 03.11.2009 Autor: Christoph Schmidt-Casdorff Agenda Wo wird OSGi derzeit eingesetzt? Grundsätzliche Anwendungsszenarien OSGi Status

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl Step by Step Remotedesktopfreigabe unter Windows Server 2003 von Remotedesktopfreigabe unter Windows Server 2003 Um die Remotedesktopfreigabe zu nutzen muss diese am Server aktiviert werden. Außerdem ist

Mehr

Java Performance Tuning

Java Performance Tuning Seminarunterlage Version: 5.04 Version 5.04 vom 16. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße 94 69151 Neckargemünd

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße 94 69151 Neckargemünd Online-Prüfungs-ABC ABC Vertriebsberatung GmbH Bahnhofstraße 94 69151 Neckargemünd Telefon Support: 0 62 23 / 86 55 55 Telefon Vertrieb: 0 62 23 / 86 55 00 Fax: 0 62 23 / 80 55 45 (c) 2003 ABC Vertriebsberatung

Mehr

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5 Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5 Im Folgenden wird die Installation von MySQL 5.0 und Tomcat 5.0 beschrieben. Bei MySQL Server 5.0 handelt es sich um ein

Mehr

An integrated total solution for automatic job scheduling without user interaction

An integrated total solution for automatic job scheduling without user interaction An integrated total solution for automatic job scheduling without user interaction Multifunktional Der Job-Scheduler ist ein multifunktionaler Taskplaner welcher die Steuerzentrale zur regelmässigen Ausführung

Mehr

MetaQuotes Empfehlungen zum Gebrauch von

MetaQuotes Empfehlungen zum Gebrauch von MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden

Mehr

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys VORLÄUFIG Inhaltsverzeichnis 1.0 Allgemein...3 1.1 Voraussetzungen für die MODESCO BT-HandeySec Programme...3 2.0 Installation...3

Mehr

Terminabgleich mit Mobiltelefonen

Terminabgleich mit Mobiltelefonen Terminabgleich mit Mobiltelefonen Sie können Termine- und Aufgaben aus unserem Kalender, sowie die Adressdaten aus dem Hauptprogramm mit Ihrem Mobiltelefon abgleichen. MS Outlook dient dabei als Schnittstelle

Mehr

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

Guideline. Facebook Posting. mit advertzoom Version 2.3

Guideline. Facebook Posting. mit advertzoom Version 2.3 Guideline Facebook Posting mit advertzoom Version 2.3 advertzoom GmbH advertzoom GmbH Stand November 2012 Seite [1] Inhalt 1 Facebook Posting Schnittstelle... 3 1.1 Funktionsüberblick... 3 2 Externe Ressource

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

FIS: Projektdaten auf den Internetseiten ausgeben

FIS: Projektdaten auf den Internetseiten ausgeben Rechenzentrum FIS: Projektdaten auf den Internetseiten ausgeben Ist ein Forschungsprojekt im Forschungsinformationssystem (FIS) erfasst und für die Veröffentlichung freigegeben, können Sie einige Daten

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen

Mehr

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

COSIDNS 2 ISPconfig3. Version 0.1 (17.01.2013)

COSIDNS 2 ISPconfig3. Version 0.1 (17.01.2013) COSIDNS 2 ISPconfig3 Version 0.1 (17.01.2013) Das Modul verbindet das Hosting Panel ISPconfig3 mit der Domainverwaltung edns. Dies ermöglicht Ihnen Domains direkt aus ISPconfig3 heraus zu verwalten und

Mehr

Application Performance Management. Auch eine Frage des Netzwerkes?

Application Performance Management. Auch eine Frage des Netzwerkes? Application Performance Management Auch eine Frage des Netzwerkes? Agenda Architektur von Webanwendungen Lange Applikationsantwortzeiten Application Performance Management (APM) Netzwerkbasiertes APM Serverbasiertes

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr