Die Workbench stellt Funktionen für das Ausführen des Befehls wsdb2gen zur Erstellung von pureQueryXML-Dateien, zum Binden von SQL-Anweisungen und für das statische Ausführen dieser Anweisungen bereit, wenn Sie Ihre JPA-Anwendung ausführen.
Vorbereitende Schritte
Stellen Sie sicher, dass Ihr System die Hardware- und Softwarevoraussetzungen erfüllt. Siehe Systemvoraussetzungen für Optim pureQuery Runtime.
Die Anwendung muss in einem JPA-Projekt in der Workbench vorhanden sein. Sie können die Anwendung in ein JPA-Projekt importieren oder ein entsprechendes Projekt in der Workbench entwickeln. Informationen zum Entwickeln eines Projekts finden Sie im Benutzerhandbuch zu Eclipse Dali JPA Tools unter http://www.eclipse.org/webtools/dali/.
Das Benutzerhandbuch zu Apache OpenJPA finden Sie auf der Seite "OpenJPA Documentation" unter http://openjpa.apache.org/documentation.html.
Bevor Sie eine Bindeoperation ausführen, müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind.
- Die Gruppe der Zugriffsrechte des Benutzers, der das pureQuery-Dienstprogramm StaticBinder aufruft, muss eine der folgenden Berechtigungen enthalten:
- Berechtigung SYSADM
- Berechtigung DBADM
- Wenn das Paket nicht vorhanden ist, das Zugriffsrecht BINDADD und eines der folgenden Zugriffsrechte:
- Zugriffsrecht CREATEIN
- DB2 für z/OS: Berechtigung PACKADM für die Objektgruppe oder für alle Objektgruppen
- DB2 Database für Linux®, UNIX® und Windows®: Berechtigung IMPLICIT_SCHEMA für die Datenbank, wenn der Schemaname des Pakets nicht vorhanden ist
- DB2 für z/OS: Wenn das Paket vorhanden ist, das Zugriffsrecht BIND für das Paket
- DB2 Database für Linux, UNIX und Windows (wenn das Paket vorhanden ist):
- Zugriffsrecht ALTERIN für das Schema
- Zugriffsrecht BIND für das Paket
- DB2 für Linux, UNIX und Windows: Der Benutzer benötigt auch alle erforderlichen Zugriffsrechte, um beliebige statische SQL-Anweisungen in der Anwendung zu kompilieren. Zugriffsrechte, die Gruppen erteilt werden, werden nicht für die Berechtigungsprüfung von statischen Anweisungen verwendet.
Wenn der Benutzer über die Berechtigung SYSADM verfügt, aber keine expliziten Zugriffsrechte für das Abschließen der Bindung hat, erteilt der DB2-Datenbankmanager automatisch die explizite Berechtigung DBADM.
Informationen zu diesem Vorgang
Die Schritte in dieser Task beziehen sich auf Schritt 4 in diesen Themen in der Dokumentation zu WebSphere Application Server 7.0:
Vorgehensweise
Gehen Sie wie folgt vor, um die statische Ausführung von SQL-Anweisungen in JPA-Anwendungen zu konfigurieren, die WebSphere Application Server 7.0 verwenden:
- Aktivieren Sie die Unterstützung für pureQuery in Ihrem JPA-Projekt. Sie müssen JPA-Projekte für die Unterstützung von pureQuery konfigurieren.
- Klicken Sie mit der rechten Maustaste auf Ihr JPA-Projekt und wählen Sie pureQuery-Unterstützung hinzufügen aus. Führen Sie die Schritte im Assistenten pureQuery-Unterstützung hinzufügen aus. Wenn Sie Informationen zu den Steuerelementen des Assistenten aufrufen wollen, klicken Sie unten links im Assistenten auf
. Wenn die Hilfe nicht angezeigt wird, wählen Sie ein Steuerelement auf der Seite pureQuery-Unterstützung hinzufügen aus und klicken Sie anschließend erneut auf
.
Nachdem Sie auf Fertig stellen geklickt haben, erstellt die Workbench den Ordner pureQueryFolder in Ihrem JPA-Projekt. Dieser Ordner enthält die Datei Default.bindProps.
Wenn Sie das Erfassen und Binden von SQL-Anweisungen, die sich in Nicht-pureQuery-API-Anwendungen befinden, inaktivieren wollen und die Unterstützung für pureQuery aus dem JPA-Projekt entfernen wollen, klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie pureQuery > pureQuery-Unterstützung entfernen aus.
- Importieren Sie die Datei com.ibm.ws.jpa.jar in Ihr Projekt und fügen Sie sie Ihrem Erstellungspfad hinzu. Die Datei wird mit WebSphere Application Server 7.0 mitgeliefert.
- Erstellen Sie die pureQueryXML-Dateien für Ihre JPA-Anwendung, indem Sie mit der rechten Maustaste auf die Datei persistence.xml in Ihrem JPA-Projekt klicken und pureQueryXML-Datei generieren auswählen. Dieser Schritt wird anstelle der manuellen Ausführung des Befehls wsdb2gen ausgeführt.
- Optional: Zeigen Sie die SQL-Anweisungen in Ihren pureQueryXML-Dateien und die zugehörigen Informationen an.
Wenn Sie Ihren Projektordner im Paketexplorer oder eine beliebige Datei in Ihrem
Projekt auswählen, wird die Sicht SQL Outline gefüllt. Wenn die Sicht nicht geöffnet
ist, klicken Sie mit der rechten Maustaste auf das Projekt und wählen
pureQuery > SQL Outline anzeigen aus.
- Auf der Seite Datenbank können Sie die Datenbankobjekte anzeigen, auf die die SQL-Anweisungen verweisen.
- Auf der Seite Java können Sie die Java-Dateien anzeigen, die die erfassten SQL-Anweisungen enthalten. Wenn Ihr Projekt Java-Quellendateien enthält, können Sie auf eine SQL-Anweisung doppelt klicken, um die entsprechende Quellendatei im Java-Editor zu öffnen.
- Auf der Seite SQL können Sie die DB2-Pakete anzeigen, die die Workbench für die erfassten SQL-Anweisungen vorschlägt. Da Sie die Bindeoperation zu diesem Zeitpunkt noch nicht ausgeführt haben, werden in der Sicht nur die Pakete angezeigt, die die Workbench erstellt, wenn Sie die Bindeoperation tatsächlich ausführen.
- Optional: Bearbeiten Sie die pureQueryXML-Dateien für Ihre Anwendung.
- Bearbeiten Sie die Datei Default.bindProps, indem Sie über die Angabe von Optionen festlegen, wie das Dienstprogramm StaticBinder erfasste SQL-Anweisungen in DB2-Paketen bindet.
- Binden Sie die erfassten SQL-Anweisungen in Paketen, indem Sie einen der folgenden Schritte ausführen:
- Klicken Sie mit der rechten Maustaste auf die einzelnen pureQueryXML-Dateien im Ordner pureQueryFolder und wählen Sie Binden aus.
- Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie pureQuery > Anwendung binden aus. Mit dieser Methode können Sie die SQL in allen Ihrer pureQueryXML-Dateien gleichzeitig binden.
Das Fenster Verbindung auswählen wird angezeigt, in dem Sie die DB2-Datenbank auswählen können, die Sie verwenden wollen. Sie können eine Datenbank auswählen, die Ihrem Java-Projekt nicht zugeordnet ist.
Achtung: Sie können keine Bindeoperation ausführen, wenn Sie offline arbeiten. Sie müssen mit der DB2-Datenbank verbunden sein, für die Sie eine Bindung ausführen wollen.
Wenn Sie nach diesem Schritt weitere SQL-Anweisungen in den
pureQueryXML-Dateien erfassen, müssen Sie die Bindeoperation für diese Dateien erneut ausführen.
- Binden Sie die erfassten SQL-Anweisungen in Paketen, indem Sie einen der folgenden Schritte ausführen:
- Klicken Sie mit der rechten Maustaste auf die einzelnen pureQueryXML-Dateien im Ordner pureQueryFolder und wählen Sie Binden aus.
- Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie pureQuery > Anwendung binden aus. Mit dieser Methode können Sie die SQL in allen Ihrer pureQueryXML-Dateien gleichzeitig binden.
Das Fenster Verbindung auswählen wird angezeigt, in dem Sie die DB2-Datenbank auswählen können, die Sie verwenden wollen. Sie können eine Datenbank auswählen, die Ihrem Java-Projekt nicht zugeordnet ist.
Achtung: Sie können keine Bindeoperation ausführen, wenn Sie offline arbeiten. Sie müssen mit der DB2-Datenbank verbunden sein, für die Sie eine Bindung ausführen wollen.
Wenn Sie nach diesem Schritt weitere SQL-Anweisungen in den pureQueryXML-Dateien
erfassen, müssen Sie die Bindeoperation für diese Dateien erneut ausführen.
- Optional: Zeigen Sie die DB2-Pakete und die darin enthaltenen SQL-Anweisungen an.
Wählen Sie den Projektordner aus und prüfen Sie die
Seite SQL in der Sicht SQL Outline, um sicherzustellen, dass Sie die gewünschten
DB2-Pakete erstellt haben.
Gehen Sie wie folgt vor, um die Eigenschaften der Pakete zu ändern:
- Bearbeiten Sie die Datei Default.bindProps.
- Wiederholen Sie die Bindeoperation.
Sie können immer noch die Java-Quelle oder SQL-Anweisungen in Ihrer Anwendung bearbeiten. Nachdem Sie dies getan haben, müssen Sie Ihre pureQueryXML-Dateien löschen und diese neu generieren. Führen Sie danach die Bindeoperation
erneut aus.
- Testen Sie Ihre Anwendung, indem Sie sie ausführen. Wenn die SQL-Anweisungen für Ihre Anwendung in der Objektgruppe gebunden sind, in der sich die Pakete für den Treiber befinden, brauchen Sie diesen Schritt nicht auszuführen.
Nächste Schritte
Die Sicht 'SQL Outline' kann beim Beheben von Problemen im Zusammenhang mit Ihren SQL-Anweisungen hilfreich sein. Denken Sie daran, dass Sie die pureQueryXML-Dateien neu generieren und Ihre DB2-Pakete erneut erstellen müssen, wenn Sie eine beliebige SQL-Anweisung oder einen beliebigen anderen Aspekt Ihrer Anwendung modifizieren.
Wenn Sie Ihre Anwendung in einer JAR-Datei implementieren wollen: Bevor Sie Ihre Anwendung in einer JAR-Datei implementieren, müssen Sie sicherstellen, dass die Datei Default.bindProps für jede pureQueryXML-Datei, die zu bindende SQL-Anweisungen enthält, einen Eintrag aufweist. Das pureQuery-Dienstprogramm StaticBinder, das Sie über eine Befehlszeile in der Datenbank, in der Sie Ihre Anwendung implementieren, ausführen müssen, wirkt sich nur auf die in der Datei Default.bindProps aufgelisteten pureQueryXML-Dateien aus.
Gehen Sie wie folgt vor, um die Dateien hinzuzufügen:
- Klicken Sie im Ordner pureQueryFolder in Ihrem Projekt mit der rechten Maustaste auf die Datei Default.bindProps und wählen Sie pureQuery > Einträge hinzufügen oder entfernen aus.
- Fügen Sie im Fenster Einträge hinzufügen oder entfernen alle erforderlichen pureQueryXML-Dateien hinzu.