Eingebettete SQLJ mit DB2 for z/OS Legacy Driver verwenden
Structured Query Language in Java (SQLJ) ist eine Sammlung von Programmiererweiterungen, die es Programmierern ermöglichen, mit der Programmiersprache Java Anweisungen mit SQL-Datenbankanforderungen (Structured Query Language) einzubetten. Sie können den Treiber DB2 for z/OS Legacy Driver mit Ihren Datenzugriffsanwendungen verwenden.
Informationen zu diesem Vorgang
- Voraussetzung für die Verwendung von SQLJ mit WebSphere Application Server for z/OS und mit DB2 for z/OS Legacy Driver ist die Installation von DB2 APAR PQ76442.
- Der DB2 for z/OS Legacy Driver unterstützt keine CMP-Beans, die mit SQLJ generiert wurden. Verwenden Sie für CMPs, die mit SQLJ generiert wurden, DB2 Universal Driver.
Nachfolgend ist beschrieben, wie Sie mit SQLJ Anwendungen entwickeln können, die mit dem DB2 for z/OS Legacy Driver unter WebSphere Application Server for z/OS Version 6.0 ausgeführt werden können.
Vorgehensweise
- Entwerfen Sie Ihre Anwendung in Rational Application Developer entsprechend Ihren Anforderungen und verwenden Sie bei Bedarf
SQLJ. Wenn Sie beispielsweise eine BMP-Bean mit dem Namen "Test" entwickeln, die BMP verwendet, sollten Sie im Code "TestBean.sqlj"
und nicht "TestBean.java" angeben.
- Kopieren Sie die Datei db2sqljclasses.zip aus Ihrer Installation von DB2 for z/OS in ein Verzeichnis auf Ihrer Workstation. Nehmen Sie diese Datei dann in den Java-Build-Pfad Ihres EJB-JAR-Projekts auf.
- Führen Sie die folgenden Schritte aus, um Ihren SQLJ-Code umzusetzen:
- Übertragen Sie Ihre SQLJ-Datei mit FTP im ASCII-Modus in ein HFS in Ihrer z/OS-Umgebung.
- Setzen Sie Ihren SQLJ-Code mit dem Befehl "sqlj" in Java-Code um. Es werden zwei Dateien
erzeugt, eine Datei mit der Dateierweiterung
.java und eine weitere Datei mit der Dateierweiterung
.ser.
sqlj -compile=false NAME_DER_SQLJ-DATEI
- Übertragen Sie die Datei mit der Dateierweiterung .java im ASCII-Modus und die Datei Dateierweiterung .ser im Binärmodus zurück in das Verzeichnis auf Ihrer Workstation mit der SQLJ-Datei.
- Aktualisieren Sie die Projektanzeige.
- Generieren Sie den Implementierungscode für Ihre Anwendung.
- Exportieren Sie Ihre EAR-Datei.
- Installieren Sie Ihre Anwendung.
- Erstellen Sie mit dem lokalen JDBC-Provider (RRS) von DB2 for zOS eine Datenquelle. Wenn Sie den JDBC-Provider und die Datenquelle definieren und die Standardwerte verwenden, wird SQLJ unterstützt.
- Installieren Sie die Anwendung in
WebSphere Application Server.
Lösen Sie die Ressourcenreferenzen mit der in Schritt 1 erstellten Datenquelle auf.
- Passen Sie Ihre serialisierten Profile an. Wenn Sie Ihren Implementierungscode generieren, werden serialisierte Profile oder Dateien mit der Dateierweiterung .ser erstellt, die für Ihre Anwendung spezifisch sind. Diese Profile
müssen vor ihrer Verwendung in einer z/OS-Umgebung angepasst werden.
- Übertragen Sie die serialisierten Profile im Binärmodus in die z/OS-Umgebung, in der Sie Ihre Anwendung installiert haben. Alternativ können Sie die serialisierten Profile mit dem Java-Befehl "jar" aus der EJB-JAR-Datei in Ihr installiertes EAR-Verzeichnis extrahieren.
- Passen Sie Ihre serialisierten Profile mit dem Befehl "db2profc" an. Informationen zu den verschiedenen Optionen dieses Befehls können Sie der
DB2-Dokumentation entnehmen. Hier sehen Sie die Mindestanforderungen für die Anpassung Ihres Profils:
db2profc -pgmname=PROGRAMMNAME PROFILNAME
- Für diese Angaben gilt Folgendes:
- PROGRAMMNAME muss der Name eines gültigen MVS-PDS-Members sein und kann bis zu sieben Zeichen umfassen.
- PROFILNAME ist der Name des serialisierten Profils, das angepasst werden soll. Für jedes Profil müssen Sie db2profc einmal ausführen.
- Die Anpassungsfunktion für Profile erstellt in der PDS BENUTZERNAME.DBRMLIB.DATA vier DBRM-Dateigruppen. Die Membernamen der DBRMs beginnen mit der Zeichenfolge, die Sie für PROGRAMMNAME angegeben haben.
- Stellen Sie sicher, dass Ihre Umgebungsvariable CLASSPATH Folgendes enthält:
- Position des serialisierten Profils
- EJB-JAR-Datei im installierten EAR-Verzeichnis
- Legen Sie eine PDS für die erstellten DBRMs an. Nennen Sie diese PDS BENUTZERNAME.DBRMLIB.DATA. Hier steht
BENUTZERNAME für den Benutzer, der den Befehl db2profc ausführt.Beispielfelder:
Space units=TRACK Primary quantity=15 Secondary quantity=5 Directory blocks=10 Record format=FB Record length=80 Block size=27920 Data set name type=PDS
- Für diese Angaben gilt Folgendes:
- Stellen Sie die vorhandenen serialisierten Profile, die jetzt angepasst sind, an eine im Anwendungsklassenpfad enthaltene Position, die vor der Position der serialisierten Profile in Ihrer
EJB-JAR-Datei angegeben ist.
Die Ausgabe der DB2-Anpassungsfunktion für Profile hat denselben Namen wie die Eingabedatei. Geben Sie die Position der Ausgabedatei im Klassenpfad vor der Position des ursprünglichen serialisierten Profils an. Sie können das angepasste Profil auch in die EJB-JAR-Datei verschieben und das ursprüngliche Profil ersetzen. Diese Vorgehensweise wird empfohlen.
WICHTIGER HINWEIS: Falls Sie den Befehl db2profc in dem Verzeichnis mit dem serialisierten Profil ausführen, überschreibt die Anpassungsfunktion für Profile dieses serialisierte Profil. Dies ist kein Problem, weil Sie nur noch die angepasste Version nach Ausführung der Anpassungsfunktion für Profile benötigen.
- Binden Sie Ihre DBRMs in ein Paket ein. Anmerkung: Vor der Einbindung Ihrer DBRMs müssen Sie Ihre Datenbanktabellen erstellen. Andernfalls scheitert der Bind-Job.
Der Anpassungsbefehl db2profc erstellt eine Reihe von DBRMs, die in Pakete eingebunden werden müssen. Für jedes angepasste Profil werden vier DBRMs erstellt.
Für diese DBRMs gilt Folgendes:- Sie befinden sich in BENUTZERNAME.DBRMLIB.DATA.
- Die Namen beginnen mit der Zeichenfolge, die Sie für PROGRAMMNAME angegeben haben.
- Sie sind von 1 bis 4 nummeriert.
Wenn Sie sich beispielsweise als IBMUSER anmelden, -pgmname=TESTBMP angeben und dann den Befehl db2profc ausführen, werden die vier Dateigruppen TESTBMP1, TESTBMP2, TESTBMP3 und TESTBMP4 erstellt und in die PDS IBMUSER.DBRMLIB.DATA gestellt.
Diese Dateigruppen müssen jeweils mit den Isolationseinstellungen UR, CS, RS und RR in Pakete eingebunden werden. Für jedes serialisierte Profil, das Sie anpassen, müssen Sie ein Bind ausführen.
- Nachdem Sie alle DBRMs in Pakete eingebunden haben, binden Sie diese Pakete in einen Plan ein. Den Plan können Sie beliebig benennen.
WICHTIGER HINWEIS: In die Paketliste (PKLIST) Ihres neuen Plans müssen Sie auch die JDBC-Pakete aufnehmen. Die aufzunehmenden JDBC-Pakete haben standardmäßig die Namen DSNJDBC.DSNJDBC1 bis DSNJDBC.DSNJDBC4. Falls Ihre Installation nicht die Standardnamen für die JDBC-Pakete verwendet, fragen Sie Ihren DB2-Administrator nach den Namen der aufzunehmenden JDBC-Pakete.
Nachfolgend sehen Sie einen Beispieljob für die Erstellung eines neuen Plans mit Einbindung.- Ein serialisiertes Profil wurde mit dem Anmeldenamen IBMUSER erstellt.
- Für die Ausführung von db2profc wurde -pgmname=TESTBMP angegeben.
- Der neue Plan hat den Namen SQLJPLAN.
//BBOOLS JOB (516B,1025),'IBMUSER',MSGCLASS=H,CLASS=A,PRTY=14, // NOTIFY=&SYSUID,TIME=1440,USER=IBMUSER,PASSWORD=IBMUSER, // MSGLEVEL=(1,1) //******************************************************************** //BINDOLS EXEC PGM=IKJEFT01,DYNAMNBR=20 //DBRMLIB DD DSN=IBMUSER.DBRMLIB.DATA,DISP=SHR //* DD DSN=MVSDSOM.DB2710.SDSNDBRM,DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DB2) BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP1) - VALIDATE(BIND) - ISOLATION(UR) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP2) - VALIDATE(BIND) - ISOLATION(CS) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP3) - VALIDATE(BIND) - ISOLATION(RS) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP4) - VALIDATE(BIND) - ISOLATION(RR) - SQLERROR(NOPACKAGE) - BIND PLAN(SQLJPLAN) - QUALIFIER(IBMUSER) - PKLIST(TESTBMP.* - DSNJDBC.* ) - ACTION(REPLACE) RETAIN - VALIDATE(BIND) END /*
- Erteilen Sie die erforderlichen Berechtigungen für Ihren neuen Plan. Verwenden Sie dazu eine Schnittstelle zu
DB2, z. B. SPUFI. Setzen Sie den folgenden Befehl ab:
Für diese Angaben gilt Folgendes:GRANT EXECUTE ON PLAN PLANNAME TO ANWENDUNGSSERVER-ID
- PLANNAME ist der Name des erstellten Plans.
- ANWENDUNGSSERVER-ID ist die ID, unter der WebSphere Application Server ausgeführt wird, z. B. CBSYMSR1.
- Konfigurieren Sie Ihre Datenquelle für die Verwendung des neuen Plans.
- Navigieren Sie in der Administrationskonsole von WebSphere Application Server for z/OS zu Ihrer Datenquelle, und wählen Sie "Angepasste Eigenschaften" aus.
- Wählen Sie die angepasste Eigenschaft planName aus.
- Ersetzen Sie den Wert von planName durch den Namen des neu erstellten Plans.
- Setzen Sie enableSQLJ auf true.
- Stoppen Sie den Server, und starten Sie ihn dann erneut.
- Führen Sie Ihre Anwendung aus.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_sqljdb2zos
Dateiname:tdat_sqljdb2zos.html