EX297

Retired - Red Hat Certified Specialist in Persistence exam

Anzeige von Informationen für:

Mit dem Red Hat Certified Specialist in Persistence Exam wird festgestellt, ob der Teilnehmer bereit ist, praktische Aufgaben in der Erstellung und Pflege von Java™-Anwendungen auszuführen, welche die Java Persistence API (JPA) mit JBoss® Hibernate® nutzen.

Mit dem Bestehen des Red Hat®Certified Specialist in Persistence Exam weist der Teilnehmer nach, dass er bereit ist, praktische Aufgaben mit der Java™ Persistence API (JPA) mit JBoss Hibernate zu lösen. Die JPA bietet ein Framework für die Programmiersprache Java zur Verwaltung relationaler Daten, Hibernate ist ein hochleistungsfähiger Dienst für objektrelationale Persistenz und Abfragen, der die JPA implementiert.

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

Als Vorbereitung

Red Hat empfiehlt den Erwerb der Zertifizierung zum Red Hat Certified JBoss Developer (RHCJD) vor der Teilnahme an dieser Prüfung, erforderlich ist eine solche Zertifizierung jedoch nicht.

Lerninhalte für die Prüfung

Um Sie bei der Vorbereitung zu unterstützen, sind in diesen Unterlagen die Prüfungsbereiche, die in der Prüfung auf Sie zukommen, aufgelistet. Red Hat behält sich das Recht vor, Prüfungsziele hinzuzufügen, diese zu verändern oder zu entfernen. Solche Änderungen werden im Voraus bekannt gegeben.

Prüfungsaufgaben

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

Konfiguration von JPA/Hibernate
  • Konfiguration von PersistenceUnit-Eigenschaften, darunter:
    • Lokalisierung von Konfigurationsdateien
    • Java EE-spezifische Konfigurationsdetails
    • Java SE-spezifische Konfigurationsdetails
    • Hibernate-spezifische Konfigurationsdetails
  • Verbindung zu einer PersistenceUnit von einer Java SE-Anwendung
  • Verbindung zu einer PersistenceUnit von einer Java EE-Anwendung
  • Überschreiben der Werte von Standardeigenschaften einer PersistenceUnit
Mapping einzelner Tabellen oder Objekte
  • Kenntnisse zum Verhalten von ID-Generatoren, einschließlich Art und Zeitpunkt der Wertgenerierung
  • Kenntnisse zum Mapping des Primärschlüssels, einschließlich:
    • Nutzung generierter Schlüssel
    • Mapping einfacher Geschäftsschlüssel
    • Mapping zusammengesetzter Schlüssel
  • Kenntnisse zu Objektidentität und Geschäftsäquivalenz
  • Konfigurieren datenbankspezifischer Informationen, z. B. Tabellenname, Spaltenname, Spaltenbreite und
    Spalteneigenschaften (löschbar, eindeutig, Typ usw.)
  • Konvertieren eines vorhandenen Java-Objekts in ein persistentes Objekt mit JPA/Hibernate
  • Mapping grundlegender JPA-Datentypen zu entsprechenden Datenbanktypen
  • Erstellen eines persistenten Java-Objekts für das Mapping zu einer bestehenden Datenbanktabelle
  • Kenntnisse zur Verwendung von Lazy bzw. Eager Loading
  • Kenntnisse und Nutzung optimaler Mapping-Strategien für Sammlungen und Wertetypen
  • Handhabung von Java-/objektmodellspezifischen Eigenschaften und Verhaltensweisen in einem persistenten Objekt Dies umfasst:
    • 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 den Werten 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)
  • Kenntnisse zu standardmäßigen Mapping-Verhaltensweisen, darunter:
    • 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 zu JPA-/Hibernate-Sammlungen (Sets, Mapping-Listen und Bags) und deren Mapping zu Objekt- und
    Tabellenbeziehungen
  • Kenntnisse zu den Performance-Auswirkungen der verschiedenen Sammlungen
  • Kenntnisse zur Nutzung von Lazy bzw. Eager Loading, einschließlich der jeweiligen Performance- 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
  • Konvertieren einer vorhandenen Java-Objekthierarchie in persistente Objekte mit JPA/Hibernate
  • Darstellen 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
  • Analysieren und Ermitteln 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 transaktionalen Parallelitätsrisiken
  • Bewertung von Datenverlust/-korruption im Verhältnis zu Leistungskompromissen
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)
  • Nutzen der Eager-Fetching-Funktion zur Laufzeit
  • Verwenden benannter Parameter
  • Voraussehen und Vermeiden einer LazyInitializationException
  • Analysieren und Verbessern der JPA-/Hibernate-Leistung
  • Kenntnisse und Nutzung erweiterter optimistischer Locking-Features in JPA und pessimistischer Locking-Features in Hibernate
Bearbeiten 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
  • Ermitteln und Anwenden optimaler Implementierungs- und Kaskadierungseinstellungen zum Ändern eines Objektdiagramms
  • Beurteilen des Zeitpunkts für den Einsatz der Batching-Funktion

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. Nicht zugelassen sind zudem Notizen, Bücher oder sonstige Materialien. Der Internetzugang wird streng 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 kann 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

Zu Beginn der Prüfung enthält der JBDS-Workspace 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 Sie müssen 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 Struktur der vorgegebenen Verzeichnisse entwickelt werden und mit diesen konsistent sein.

Codierungsstandards

Dies ist eine praktische, realistische 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, wie in einer realen Umgebung. Es 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 Ihnen auch während der Prüfung zur Verfügung gestellt. 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. Es dient lediglich dazu, Ihnen die Arbeit an einem einzelnen Element zu erleichtern, ohne den Code ständig nach den Feldern und entsprechenden Methoden durchsuchen zu müssen. Wenn Sie die Arbeit mit einer normalen Codestruktur bevorzugen, steht es Ihnen frei, die Klassenelemente zu sortieren. 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 zur realen Welt 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 Verwendung bewährter Vorgehensweisen. 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. Zum Beispiel sollten Sie Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E durch List ersetzen, wo dies sinnvoll ist.
  • 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; erstellen Sie keine klassenspezifische Ausnahme. Wenn das Problem zum Beispiel ein ungültiges Argument für eine Methode ist, können Sie mit der IllegalArgumentException arbeiten. Wenn ein Problem bei der Inkonsistenz im Status des Objektmodells oder des persistenten Speichers vorliegt, können Sie die IllegalStateException verwenden. Und natürlich können Sie immer die NullPointerException verwenden, wenn sich dies als angemessen erweist. 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üfergebnissen

Die offiziellen Prüfungsergebnisse werden ausschließlich auf der Website Red Hat Certification Central veröffentlicht. Red Hat autorisiert niemals Prüfer oder Trainingspartner, den Teilnehmern die Ergebnisse direkt mitzuteilen. In der Regel wird das Ergebnis innerhalb von 3 US-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.

Zielgruppe und Voraussetzungen

Das Red Hat Certified Specialist in Persistence ist bestimmt für:

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

Voraussetzungen für diese Prüfung

  • mit der Arbeit in einer Red Hat Enterprise Linux Umgebung vertraut sein
  • die Prüfungsziele des Red Hat Certified Specialist in Persistence Exam (EX297) durchgehen