EX297

Eingestellt – Red Hat Certified Specialist in Persistence Exam

Überblick

Prüfungsbeschreibung

Hinweis: Dieses Exam und diese Zertifizierung sind nicht mehr verfügbar.

Das Red Hat Certified Specialist in Persistence Exam wird geprüft, ob die Kursteilnehmer praktische Aufgaben in Bezug auf die Erstellung und Wartung von Java™-Anwendungen ausführen können, die Java Persistence API (JPA) mit JBoss® Hibernate® nutzen.

Im Red Hat® Certified Specialist in Persistence Exam können die Teilnehmer nachweisen, dass sie über praktische Fertigkeiten in Zusammenhang mit der Java™ Persistence API (JPA) mit JBoss Hibernate® verfügen. JPA ist eine Java-Programmiersprache zur Verwaltung von relationalen Daten. Hibernate ist ein hochleistungsfähiger Service für Object Relational Persistence und Queries, der JPA implementiert.

Machen Sie sich mit den Werkzeugen, der Umgebung und den Anforderungen des Red Hat JBoss Certified Developer Exam vertraut.

Zielgruppe für diese Prüfung

Das Red Hat Certified Specialist in Persistence Exam wurde für folgende Zielgruppen entwickelt:

  • Erfahrene Entwickler und Architekten von Java-Anwendungen
  • Entwickler von Business-Komponenten und Datenbanken

Voraussetzungen für diese Prüfung

  • Vertrautheit mit einer Red Hat Enterprise Linux Umgebung
  • Prüfungsziele des Red Hat Certified Specialist in Persistence Exams (EX297)

Red Hat empfiehlt, dass Kandidaten für diese Prüfung zunächst das Zertifikat Red Hat Certified JBoss Developer (RHCJD) erwerben. Dies ist jedoch nicht zwingend erforderlich.

Ziele

Lerninhalte für die Prüfung

Um Sie bei der Vorbereitung zu unterstützen, haben wir die Prüfungsziele mit den Aufgabenbereichen aufgelistet, die in dem Exam auf Sie zukommen. Red Hat behält sich das Recht vor, Prüfungsziele hinzuzufügen, diese zu ändern oder zu entfernen. Solche Änderungen werden im Voraus bekannt gegeben.

Prüfungsaufgaben

Die Prüfungskandidaten für das Red Hat Certified Specialist in Persistence Exam sollten in der Lage sein, mithilfe von JPA mit Hibernate folgende Aufgaben zu erfüllen. Zur Unterstützung Ihrer Prüfungsvorbereitung haben wir auch eine Liste empfohlener Referenzquellen für diese Aktivitäten aufgenommen.

Mapping einzelner Tabellen oder Objekte
  • Vertrautheit mit dem Verhalten von ID-Generatoren, einschließlich Art und Zeitpunkt der Wertgenerierung
  • Kenntnisse in Bezug auf das Mapping wichtiger Schlüssel, darunter:
    • Nutzung generierter Schlüssel
    • Mapping einfacher Geschäftsschlüssel
    • Mapping zusammengesetzter Schlüssel
  • Kenntnisse zu Objektidentität und Geschäftsäquivalenz
  • Konfiguration datenbankspezifischer Informationen wie Tabellenname, Spaltenname, Spaltenbreite
    und Spaltenattribute (löschbar, eindeutig, Typ usw.)
  • Konvertierung eines vorhanden Java-Objekts in ein persistentes Objekt mit JPA/Hibernate
  • Mapping grundlegender JPA-Datentypen und entsprechender Datenbanktypen
  • Erstellung eines persistenten Java-Objekts für das Mapping zu einer bestehenden Datenbanktabelle
  • Kenntnisse in Bezug auf die Verwendung von Lazy bzw. Eager Loading
  • Vertrautheit mit und Nutzung von optimalen Mapping-Strategien für Container und Wertetypen
  • Handhabung von Eigenschaften und Verhaltensweisen von Java-/Objektmodellen in einem persistenten Objekt. Hierzu zählen:
    • Serialisierung
    • transiente Eigenschaften
    • generierte und kalkulierte Eigenschaften
    • unveränderliche Eigenschaften
    • Wertetypen
    • wechselseitig abhängige Eigenschaften (d. h. Fälle, in denen die gültigen Werte einer Eigenschaft von denen einer
      anderen Eigenschaft abhängen)
Mapping von Objekt-Beziehungen mit JPA/Hibernate
  • Kenntnisse zum Mapping von Beziehungen, darunter:
    • Werte-Beziehungen (zum Beispiel Has-A-Detailobjekt)
    • Beziehungen zwischen über- und untergeordneten Objekten
    • Eins-zu-eins-Beziehungen (sowohl uni- als auch bidirektional)
    • Viele-zu-eins-Beziehungen und Eins-zu-viele-Beziehungen (sowohl uni- als auch bidirektional)
    • Viele-zu-viele-Beziehungen (sowohl uni- als auch bidirektional)
  • Vertrautheit mit standardmäßigen Mapping-Verhaltensweisen, einschließlich, ohne Einschränkung:
    • fremde Schlüsselnamen
    • Assoziationstabellennamen
  • Kenntnisse zur Nutzung fremder Schlüssel und zum Zusammenführen von Tabellen beim Erstellen von Beziehungen
  • Kenntnisse zur Zuordnung eines zusammengesetzten primären Schlüssels auf Basis der Beziehung
  • Kenntnisse zum JPA-/Hibernate-Container (Sets, Mapping-Listen und Bags) und deren Mapping
    zu Objekt- und Tabellenbeziehungen
  • Kenntnisse zu Leistungsauswirkungen verschiedener Container
  • Kenntnisse zur Nutzung von Lazy bzw. Eager Loading, einschließlich der jeweiligen
    Leistungs- und Code-Auswirkungen
  • Erstellen eines persistenten Java-Objektdiagramms passend zur Datenbank auf Basis vorhandener Tabellen
    und Beziehungen
  • Mapping eines vorhandenen Objektmodells einschließlich verschiedener Assoziationen zu einem persistenten Speicher
  • Ermittlung optimaler Ladestrategien für einen gegebenen Geschäftsprozess
Mapping hierarchischer Objektbeziehungen mit JPA/Hibernate
  • Kenntnisse zur Darstellung verschiedener Objekthierarchien mit JPA/Hibernate
  • Konvertierung eines vorhanden Java-Objekts in ein persistentes Objekt mit JPA/Hibernate
  • Darstellung einer vorhandenen Auswahl von Tabellenbeziehungen als Objekthierarchie
    (zum Beispiel Sparkonto, Kreditkarte, Darlehenskonto)
  • Kenntnisse zu polymorphen Anfragen und Assoziationen
  • Kenntnisse zu Vorteilen und Beschränkungen unterschiedlicher Vererbungsstrategien
  • Analyse und Ermittlung optimaler Datenbankdarstellungen für unterschiedliche Objekthierarchien
Kenntnisse zu Transaktionsverhaltensweisen (ACID)
  • Erwerb und Nutzung eines Transaktionskontexts unter:
    • Java EE/CMT
    • Java EE/BMT
    • Java SE mit JPA APIs
  • Kenntnisse zur Verknüpfung des Persistenzkontexts mit der Transaktion in Java EE
  • Kenntnisse zur Übernahme des Transaktionskontexts mit EJB3
  • Kenntnisse zu Konsequenzen eines Transaktions-Rollbacks auf Ebene des Persistenzkontexts
  • Kenntnisse zu transaktionellen Parallelitätsrisiken
  • Bewertung von Datenverlust/Korruption vs. Leistungskompromisse
Kenntnisse zum Abrufen persistenter Objekte
  • Kenntnisse zu JPA-/Hibernate-Ladestrategien:
    • Lazy Loading
    • Subselect Loading
    • Batch Loading
  • Kenntnisse und Nutzung erweiterter Anfrageoptionen:
    • HQL/JPA QL
    • Kriterien-APIs
    • Native Anfragen (SQL)
  • Nutzung der Eager-Fetching-Laufzeitfunktion
  • Verwendung benannter Parameter
  • Prognostizierung und Vermeidung einer LazyInitializationException
  • Analyse und Verbesserung der JPA-/Hibernate-Leistung
  • Kenntnisse und Nutzung erweiterter optimistischer Locking-Features in JPA und pessimistischer Locking-Features in Hibernate
Bearbeitung persistenter Objekte
  • Kenntnisse zum Entity-Status, darunter:
    • Transient
    • Persistent
    • Verknüpft
    • Getrennt
    • Entfernt
  • Kenntnisse zum Ändern des Status einer Entity/eines Entity-Diagramms mit JPA APIs
  • Kenntnisse zum Lebenszyklus des Persistenzkontexts und seiner Auswirkungen auf verwaltete Entities
  • Anwenden von JPA-/Hibernate-Batching-Features:
    • API-Anwendungsmuster
    • DML-Anfragen
  • Ermittlung und Anwendung einer optimalen Implementierung und Kaskadieren von Einstellungen zum Ändern eines Objektdiagramms
  • Bewertung, wann die Batching-Funktion verwendet werden kann

Erforderliche Vorkenntnisse

Unterlagen und Remote Classroom

Während der Prüfung wird lediglich ein begrenzter Zugriff auf die offiziellen Unterlagen für die zu testende Version der JBoss Enterprise Application Platform sowie auf Musterdateien oder zusätzliche Produktdokumentationen gewährt. Es wird alles bereitgestellt, was normalerweise darin enthalten ist.

Wir möchten darauf hinweisen, dass Sie während der Prüfung keinen Zugriff auf die Wikis jboss.org oder hibernate.org haben. Diese enthalten zwar nützliche Informationen und für die Prüfung relevante Inhalte, jedoch ist das Format für den Zugriff im Rahmen einer Prüfung ungeeignet. Schließlich möchten wir Sie prüfen, und nicht diejenigen, die das Wiki lesen und aktualisieren.

Papierunterlagen oder elektronische Dokumentationen sind nicht zur Prüfung zugelassen. Dieses Verbot schließt auch Notizen, Bücher oder sonstige Materialien ein. Internetzugriff wird strengstens kontrolliert. Denken Sie bitte während Ihrer Vorbereitung an diese Einschränkungen.

Umwelt

Sie werden während der Prüfung mit einem Red Hat® Enterprise Linux® 5.4 System arbeiten. Erfahrungen in der Arbeit mit Linux oder UNIX sind daher von Vorteil. Umfangreiche Erfahrungen mit Linux sind jedoch nicht erforderlich – schließlich werden Ihre Kenntnisse zu JPA mit Hibernate und nicht zu Betriebssystemen geprüft. Ihnen steht für Ihre Arbeit eine komplette Desktop-Umgebung zur Verfügung sowie zusätzlich zu den man-Seiten und anderen Unterlagen von Red Hat Enterprise Linux eine Referenzliste mit grundlegenden Befehlen.

In Fedora finden Sie eine frei verfügbare Alternative, mit der Sie Ihre praktischen Linux-Kenntnisse ausbauen können. Für die Arbeit mit Fedora steht die Version auf einer Live-CD zur Verfügung, die nicht auf dem Computer installiert werden muss. Zwar stimmt diese Version nicht exakt mit Red Hat Enterprise Linux überein, ist dieser jedoch hinreichend ähnlich.

Prüfungsformat

Das Red Hat Certified Specialist in Persistence Exam ist ausschließlich leistungsbezogen – die Teilnehmer weisen ihre Kenntnisse und Fertigkeiten durch das Ausführen von Aufgaben nach, nicht durch die Wiedergabe von Fakten. Die meisten IT-Zertifizierungsprüfungen bestehen aus Multiple-Choice-Fragen, bei denen Sie A, B, C, oder D wählen oder auch der eher unbeliebten Anweisung Zutreffendes ankreuzen folgen. Beim Red Hat Certified Specialist in Persistence Exam werden Sie nichts dergleichen finden. Es werden hierbei keine Fragen gestellt, sondern Sie werden mit einer realen Umgebung konfrontiert, in der Sie mehrere praktische Aufgaben lösen müssen. Dazu können zum Beispiel die Erstellung und Pflege einer persistenten Assoziation statt einer Reihe von Fragen zu JPA-Mapping-Annotationen zählen. Aus diesem Grund sind die Kandidaten gut beraten, Online-Fragenkataloge und ähnliche Prüfungsvorbereitungen skeptisch zu betrachten. Die beste Informationsquelle für die Vorbereitung auf diese Prüfung sind diese Unterlagen.

Das Red Hat Certified Specialist in Persistence Exam dauert 4 Stunden. Vor dem Beginn der Prüfung wird etwas Zeit für die Überprüfung der Anwesenden und zur Datenerhebung benötigt.

Prüfungsumgebung

Entwicklungs-Tools

Zusätzlich zur Desktop-Umgebung werden wir Ihnen eine installierte und konfigurierte Kopie von JBoss Developer Studio 3 (JBDS) zur Verfügung stellen. Es handelt sich nicht um eine JBDS-Prüfung, sodass von Ihnen keine Kenntnisse über JBDS oder der Einsatz von JBDS für die Durchführung der Prüfungsaufgaben verlangt wird. JBDS ist jedoch ein ausgezeichnetes Tool für die Entwicklung und Wartung von JPA-/Hibernate-Anwendungen, weshalb gewisse Erfahrungen und Kenntnisse im Zusammenhang mit JBDS für die Prüfung durchaus nützlich sind. Wenn Sie keinen Zugang zu einer unterstützten Kopie von JBDS haben, können Sie eine kostenlose Version herunterladen. Wenn Sie bei Red Hat noch nicht registriert sind, müssen Sie zunächst ein kostenfreies Konto erstellen. Wenn Sie sich für den kostenlosen Download nicht bei Red Hat registrieren möchten, können Sie die Standard-Eclipse-Distribution mit dem JBoss Tools-4-Plug-In verwenden, die ebenfalls für die Vorbereitung auf die Prüfung geeignet ist.

Die Projekte in der Prüfung wurden mit Maven erstellt. Wenn Sie JBDS nicht nutzen möchten, können Sie einen Standard-Texteditor (wie gedit oder vi), die Befehlszeile und Maven verwenden. Beachten Sie, dass die Prüfung in einer abgeschlossenen Umgebung stattfindet und dass Maven im Offline-Modus ausgeführt wird. Sie können keine Maven-Repositories oder Plug-Ins verwenden, die nicht zuvor in die lokale Umgebung importiert wurden.

Arbeitsverzeichnis

Der JBDS-Workspace enthält ein oder mehrere Projektverzeichnisse, die für die Prüfung zu verwenden sind. Sie müssen nicht unbedingt JBDS für Ihre Entwicklung einsetzen, aber für sämtliche Aufgaben das Standard-Workspace-Verzeichnis und die zur Verfügung gestellten Projektverzeichnisse verwenden. Das heißt: Sämtliche Codes und Ressourcen müssen innerhalb der vorgegebenen Struktur und Verzeichnisse entwickelt werden und mit diesen konsistent sein.

Codierungsstandards

Dies ist eine praktische Prüfung, in der Sie einen Code schreiben müssen, um die Aufgaben erfolgreich durchführen zu können. Unterschiedliche Unternehmen arbeiten mit verschiedenen Codierungsstandards. Und wie in einer realen Umgebung wird von Ihnen erwartet, dass Sie die vorgegebenen Codierungsstandards einhalten. Weiter unten finden Sie einige Informationen zu den Codierungsstandards für die Prüfung, die Ihnen bei Ihrer Prüfungsvorbereitung helfen können. Diese Informationen werden während des Exams ebenfalls bereitgestellt. Für die Prüfung wird es am einfachsten sein, wenn Sie sich vorstellen, Sie seien ein neu eingestellter JPA/Hibernate-Entwickler, der mit dem Abschluss eines Projekts beauftragt wurde. Leider musste der ursprüngliche Entwickler das Projekt unterbrechen und steht nicht länger zur Verfügung. Sie müssen dort weitermachen, wo er mit dem Code aufgehört hat, und in der verfügbaren Zeit so viel wie möglich vervollständigen.

Natürlich ist der Code gut dokumentiert, und es gibt zahlreiche TODOs im Code, die Hinweise darauf enthalten, was noch zu erledigen ist. Beachten Sie aber, dass Javadoc und TODOs nicht ausreichend sind; Sie müssen die Aufgabenbeschreibungen lesen und die Anforderungen verstehen, bevor Sie ein TODO bearbeiten. Wenn Sie der Meinung sind, dass zwischen dem Aufgabentext, dem UML/PDM-Diagramm und dem Javadoc/TODO ein Konflikt besteht, folgen Sie stets der Aufgabenstellung.

Nachfolgend einige wichtige Punkte, die Sie bei Ihrer Arbeit beachten sollten:

  • Das Codeformat spielt keine Rolle. Ob Sie Tabulatoren oder Leerzeichen verwenden und wie Sie Ihre geschweiften Klammern setzen, ist für die Bewertung unerheblich.
  • Sie können Ihre Klassen mit XML-Dateien, Feld-Annotationen oder Eigenschafts-Annotationen mappen; was Sie verwenden, ist unerheblich. Der vorhandene Code nutzt eine kleine Anzahl von Annotationen auf Feldebene, aber Sie können leicht zu Ihrem bevorzugten Mapping-Stil wechseln.
  • Viele Klassen sind in einer unüblichen Weise organisiert; Felder und entsprechende Methoden sind zusammen gruppiert. Dies ist sehr ungewöhnlich und wird nicht zur Nachahmung empfohlen. Auf diese Weise soll Ihnen das Arbeiten mit einem einzelnen Objekt erleichtert werden, ohne den Code komplett nach Feldern und entsprechenden Methoden durchsuchen zu müssen. Sie können auch gerne die Klassenmitglieder sortieren, wenn Sie eine standardmäßigere Code-Struktur verwenden möchten. Hinweis: In JBDS helfen Ihnen der blaue TODO-Marker rechts im Editor-Fenster sowie die Eigenschaftenliste in der Strukturansicht, schnell in den Klassen zu navigieren.
  • Im Gegensatz zum normalen Arbeitsalltag sind Kommentare und Ausnahmemeldungen nicht wichtig. Die Prüfung wird von einer Maschine markiert, d. h. Kommentare und Meldungen werden vollständig ignoriert.
  • Wichtig sind die Codequalität und die Einhaltung von Best Practices. Sie sollten stets mit den bewährten Vorgehensweisen arbeiten und immer davon ausgehen, dass unzureichende oder ineffiziente Vorgehensweisen Ihre Arbeit abwerten. Als eine bewährte Vorgehensweise bei Java gilt beispielsweise, niemals öffentliche Member (Feld) zu verwenden, sondern stattdessen stets die Standardzugriffsmethoden (Standard-Getter/-Setter) von JavaBeans für Objekteigenschaften einzusetzen.
  • Das Projekt für das Prüfungsszenario wurde gemeinsam mit anderen Anwendungen aus anderen Abteilungen entwickelt. Wenn die Aufgabenstellung oder ein TODO im Code nicht ausdrücklich etwas anderes vorgibt, dürfen Sie keinesfalls die Signatur einer vorhandenen Methode ändern. Sie dürfen nur dann eine Ausnahme davon machen – und sollten dies auch tun – wenn Sie die Signatur spezifischer darstellen können (d. h. durch Nutzung einer abgeleiteten Klasse und/oder eine spezifische, generische Methode), falls dies angebracht ist. Beispielsweise sollten Sie, wo es sinnvoll ist, Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E gegen List austauschen.
  • Sie können je nach Bedarf Felder, Attribute oder Methoden hinzufügen.
  • Da es bei dem Projekt in erster Linie um persistente Entities geht und Sie keine Eingaben auf Controller-/Service-Ebene vornehmen, wird erwartet, dass Sie die persistenten Entities defensiv codieren. Das heißt, Sie sollten mit Ihren Entity-Methoden versuchen, die Zerstörung der Objektkonsistenz durch die Geschäftslogik zu verhindern. Zum Beispiel sollte ein Setter für eine nicht löschbare Eigenschaft eine NullPointerException verlangen, wenn ein Nullwert weitergegeben wird.
  • Soweit nicht anderweitig angegeben müssen alle Entities primäre Datenbankschlüssel verwenden, die automatisch von der Persistenz-Engine generiert werden.
  • Sollte eine Methode aufgrund von internen Problemen eine Ausnahme verlangen, sollten Sie immer eine RuntimeException verwenden und keine klassenspezifische Ausnahme erstellen. Wenn das Problem zum Beispiel ein ungültiges Argument für eine Methode ist, können Sie mit der IllegalArgumentException arbeiten. Sie können IllegalStateException einsetzen, wenn es sich bei dem Problem um eine Abweichung beim Status von Objektmodell oder persistentem Storage handelt. Natürlich können Sie, falls angebracht, stets NullPointerException verwenden. Soweit Sie nicht ausdrücklich dazu aufgefordert werden, dürfen Sie keine transitiven JPA-Persistenz-Features verwenden, um Änderungen automatisch in verbundene Entities in einem Objektdiagramm zu übernehmen. Unsere Erfahrung zeigt, dass dieses Feature bei vielen Entwicklern auf Unternehmensebene für Verwirrung sorgt und bei unangemessener Nutzung zu erheblichen Leistungs- und Zuverlässigkeitsproblemen führt. Eine letzte Warnung: Wir können Ihre Arbeit nicht bewerten, wenn der Compilierer sie nicht verarbeitet oder sie nicht einwandfrei läuft. Insbesondere eine defekte persistente Assoziation kann dazu führen, dass sämtliche Persistenzaktionen fehlschlagen. Es ist besser, eine schwierige Assoziation als Kommentar zu kennzeichnen, statt das Risiko einzugehen, dass sie andere, funktionierende Funktionen beeinträchtigt. Die Testprojekte umfassen eine umfangreiche Auswahl von JUnit-Tests, und wir empfehlen Ihnen, sämtliche Tests nach Fertigstellung einer Aufgabe auszuführen. Beachten Sie aber, dass die enthaltenen JUnit-Tests nicht Teil der Prüfung sind und ihre erfolgreiche Ausführung für Ihren Code nicht bedeutet, dass Ihre Arbeit mit der Höchstnote bewertet wird.

Bekanntgabe von Prüfungsergebnissen

Die offiziellen Prüfungsergebnisse werden ausschließlich auf der Website Red Hat Certification Central veröffentlicht. Red Hat erlaubt Prüfern oder Trainingspartnern nicht, den Teilnehmern die Ergebnisse direkt mitzuteilen. In der Regel wird das Ergebnis innerhalb von drei US-amerikanischen Werktagen mitgeteilt.

Die Prüfungsergebnisse werden in Form von erreichten Punktzahlen in den einzelnen Prüfungsteilen mitgeteilt. Red Hat erteilt keine Informationen über einzelne Prüfungselemente und gibt auch auf Anfrage keine weiteren Auskünfte.