Für mit Annotationen versehene Methoden verwendetes Dienstprogramm StaticBinder

Wenn Sie den Programmierstil mit Annotationsmethode und eine DB2-Datenbank verwenden, können Sie die SQL-Anweisungen in Ihren mit Annotationen versehenen Methoden mithilfe des pureQuery-Dienstprogramms StaticBinder an diese Datenquelle binden. Sie können mit dem Dienstprogramm StaticBinder auch DBRM-Dateien generieren.

Eine Beschreibung der in den Diagrammen verwendeten Konventionen finden Sie in Syntaxdiagramme lesen.

Übersicht

Anwendungen, die eingebettetes SQL verwenden, das statisch in DB2-Paketen gebunden ist, haben natürliche Vorteile in den Bereichen Leistung, Zuverlässigkeit, Sicherheit, Überwachung und Verwaltung.

Führen Sie vor dem Dienstprogramm StaticBinder das pureQuery-Dienstprogramm Generator aus, um die Implementierungsklassen für die Schnittstellen zu generieren, die die zu bindenden SQL-Anweisungen enthalten. Wenn das pureQuery-Dienstprogramm Generator ausgeführt wird, werden alle Informationen, die zur Erstellung eines statischen DB2-Pakets benötigt werden, erfasst und in der generierten Implementierungsklasse gespeichert. Zu diesen Informationen gehören die SQL-Anweisungen und alle gültigen Datentypinformationen aus den Java-Klassendefinitionen und alle Spalten- oder Parametermetadaten aus der Zieldatenbank. Die Informationen enthalten außerdem die Stammpaketnamen und optional die Objektgruppen-IDs und Versionen für die DB2-Pakete.

Das Dienstprogramm StaticBinder liest diese Informationen aus den Implementierungsklassen, wenn es DB2-Pakete erstellt und bindet. Wenn Sie das Dienstprogramm StaticBinder ausführen, können Sie in der Befehlszeile entweder die Implementierungsklassen angeben, aus denen gelesen werden soll, oder die Schnittstellen, die diesen Klassen entsprechen. Wenn Sie eine Optionsdatei verwenden, können Sie mindestens eine Schnittstelle angeben. Das Dienstprogramm StaticBinder liest die Informationen aus den entsprechenden Implementierungsklassen.

Das pureQuery-Dienstprogramm StaticBinder erstellt standardmäßig vier Pakete oder DBRM-Dateien: eine(s) für jede der vier DB2-Isolationsstufen. Das pureQuery-Dienstprogramm StaticBinder gibt die Isolationsstufe an, indem die folgenden Zahlen an die Stammnamen der Pakete oder DBRM-Dateien angefügt werden:
1
Für Isolationsstufe Uncommitted Read (UR)
2
Für Isolationsstufe Cursor Stability (CS)
3
Für Isolationsstufe Read Stability (RS)
4
Für Isolationsstufe Repeatable Read (RR)

Wenn Sie die Option -forceSingleBindIsolation beim Ausführen des Dienstprogramms Generator verwenden, wird die Zahl für die Isolationsstufe jedoch nicht an den Namen des erstellten Pakets angehängt.

Wenn Sie beim Ausführen einer Bindung die Option -isolationLevel verwenden oder die Isolationsstufe in der Zeichenfolge für die Bindeoptionen angeben, wird lediglich das Paket bzw. die DBRM-Datei für die von Ihnen angegebene Isolationsstufe erstellt. Beim Erstellen von Paketen bzw. DBRM-Dateien für alle vier Isolationsstufen folgt der Name den von StaticBinder verwendeten Konventionen.

Optionsdateien verwenden

Eine Optionsdatei listet die Schnittstelle(n) auf, die vom pureQuery-Dienstprogramm StaticBinder verarbeitet werden soll(en), sowie die Optionen, die dem Dienstprogramm StaticBinder mitteilen, wie die Schnittstellen zu verarbeiten sind. Sie können Standardoptionen definieren, die für alle in einer Optionsdatei aufgeführten Schnittstellen gelten. Sie können außerdem Optionen für Schnittstellen definieren, sodass Sie die Standardoptionen überschreiben können, und andere Optionen definieren, die nur für einzelne Schnittstellen bestimmt sind.

Im Befehl für die Ausführung des Dienstprogramms StaticBinder können Sie die zu verwendende Datei mit der Option -optionsFile angeben.

Eine einfache Optionsdatei für das pureQuery-Dienstprogramm StaticBinder könnte beispielsweise wie folgt aussehen:
defaultOptions = -bindOptions "QUALIFIER qual1" -url jdbc:db2://SRVR01:50000/DB01 -username user01 -password pass01
com.myCompany.MyInterfaceA = -bindOptions "QUALIFIER qual2"
com.myCompany.MyInterfaceB
com.myCompany.MyInterfaceC = -url jdbc:db2://SRVR01:50001/DB02 -username user02 -password pass02
In diesem Beispiel gibt die mit defaultOptions beginnende Zeile das Qualifikationsmerkmal für die DB2-Pakete an und definiert die Standardverbindungs-URL. Die nächste Zeile gibt eine Schnittstelle mit einem Qualifikationsmerkmal an, welches das Standardqualifikationsmerkmal überschreibt. Die nächste Zeile gibt eine Schnittstelle an, für die alle Standardoptionen gelten. Die letzte Zeile gibt eine Schnittstelle an, die auf einer anderen Datenbank gebunden werden soll.
Sie können außerdem Kommentare in Optionsdateien aufnehmen, indem Sie das Symbol # an den Anfang jeder Kommentarzeile stellen. Wenn dieses Symbol in dem Wert einer der Optionen enthalten sein soll, setzen Sie den Wert in doppelte Anführungszeichen:
-pkgVersion "ver#1"

In einer Optionsdatei können Sie einen Eintrag erstellen, der die StaticBinder-Eigenschaften angibt, die auf eine Gruppe von Java-Schnittstellen angewendet werden. Sie erstellen eine Zeile, die mit groupOptions.Gruppenname beginnt. Die Gruppenkennung ist der Wert von Gruppenname. Gruppenname ist die Zeichenfolge, die einer Schnittstelle mit der pureQuery-Annotation @Group hinzugefügt wird.

Im folgenden Beispiel wird die Annotation @Group für die Schnittstelle CalculateTax angegeben:
@Group ("Payroll")
public Interface CalculateTax {
…
}
Wenn der folgende Eintrag groupOptions.Payroll in einer Optionsdatei definiert wird, führt das Dienstprogramm StaticBinder eine Bindeoperation an den mit Annotationen versehenen Methoden in der Schnittstelle CalculateTax mit den angegebenen Optionseinstellungen durch.
groupOptions.Payroll -bindOptions "QUALIFIER(Payroll), COLLECTION(Payroll)" -url "jdbc:db2://com.prod.hr:50000/DB01"  

Sie können mehrere Einträge groupOptions verwenden, um eine Schnittstelle mit mehreren Optionen zu binden. Beispielsweise wird eine Schnittstelle mit einer Annotation @Group("Group1") versehen und enthält nicht qualifizierte SQL-Anweisungen. Sie können das Paket für diese Schnittstelle in zwei unterschiedliche Paketobjektgruppen mit unterschiedlichen Schemawerten binden. Erstellen Sie zwei Einträge groupOptions in der Optionsdatei für Group1. Für jeden Eintrag groupOptions.Group1 geben Sie eine andere Option COLLECTION und eine andere Option QUALIFIER an. Das Dienstprogramm StaticBinder bindet die Pakete entsprechend dem jeweiligen groupOptions-Eintrag.

Informationen zur Annotation @Group finden Sie in Schnittstellenverarbeitung durch pureQuery-Dienstprogramme steuern.

Wenn Sie das Dienstprogramm StaticBinder über eine Befehlszeile ausführen und eine Optionsdatei verwenden, erkennt pureQuery Optionen in folgender Reihenfolge:
  1. Optionen in der Befehlszeile
  2. Optionen für einzelne Schnittstellen in der angegebenen Optionsdatei
  3. Über einen Eintrag groupOptions in der angegebenen Optionsdatei festgelegte Optionen
  4. Standardoptionen in der angegebenen Optionsdatei

Berechtigung

Die Gruppe der Zugriffsrechte des Benutzers, der das Dienstprogramm 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 for z/OS: Berechtigung PACKADM für die Objektgruppe oder für alle Objektgruppen
    • DB2 Database for Linux, UNIX, and Windows: Berechtigung IMPLICIT_SCHEMA für die Datenbank, wenn der Schemaname des Pakets nicht vorhanden ist
  • Wenn das Paket vorhanden ist:
    • DB2 for z/OS: The BIND privilege on the package
    • DB2 Database for Linux, UNIX, and Windows: Zugriffsrecht ALTERIN für das Schema und Zugriffsrecht BIND für das Paket
Der Benutzer benötigt außerdem alle Zugriffsrechte, die für die Kompilierung beliebiger statischer SQL-Anweisungen in der Anwendung erforderlich sind. Zugriffsrechte, die Gruppen erteilt werden, werden nicht für die Berechtigungsprüfung von statischen Anweisungen verwendet.

DB2 Database for Linux, UNIX, and Windows: Wenn der Benutzer über die Berechtigung SYSADM verfügt, aber keine expliziten Zugriffsrechte für das Ausführen der Bindung hat, erteilt der DB2-Datenbankmanager automatisch die explizite Berechtigung DBADM.

Syntax für den Befehl zur Ausführung des Dienstprogramms StaticBinder beim Binden über ein Archiv

Sie können diesen Befehl verwenden, um das Dienstprogramm StaticBinder für eine Archivdatei auszuführen, die Ihre Anwendung enthält. Das Archiv muss die Schnittstellen und Implementierungsklassen enthalten, die dem Dienstprogramm StaticBinder zur Verfügung gestellt werden sollen. Verwenden Sie eine Optionsdatei mit der Erweiterung .bindProps, in der die Schnittstellen und Implementierungsklassen aufgelistet sind.

Das Dienstprogramm StaticBinder erstellt ein Paket für jede Schnittstelle oder Implementierungsklasse, die Sie angeben. Wenn Sie bei der Ausführung des Dienstprogramms Generator nicht die Option rootPkgName verwendet haben, ist der Stammname für jedes Paket einer dieser beiden Stammnamen:
  • Wenn Ihre Datenbank keine langen Paketnamen unterstützt: Der Stammname wird aus den ersten 7 Zeichen im Namen der entsprechenden Schnittstelle gebildet. Wenn zwei oder mehr Schnittstellen Namen aufweisen, die mit den gleichen 7 Zeichen anfangen, überschreibt das Paket, das für die zweite dieser Schnittstellen erstellt wird, das für die erste Schnittstelle erstellte Paket, und das Paket, das für die dritte dieser Schnittstellen erstellt wird, überschreibt das für die zweite Schnittstelle erstellte Paket etc.
  • Wenn Ihre Datenbank lange Paketnamen unterstützt: Der Stammname ist der vollständige Name der entsprechenden Schnittstelle.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
                                        (1)   
>>-java--com.ibm.pdq.tools.StaticBinder------------------------->

    (2)                                                                  
>-------- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-->
                                             '-:--Port-'                 

>-- -username--Benutzer-ID-- -password--Kennwort---------------->

>-- -archive-- -Dateiname--+-.ear-+----------------------------->
                           +-.jar-+   
                           +-.war-+   
                           '-.zip-'   

>--+-------------------------+---------------------------------->
   |               .-FALSE-. |   
   '- -autoDetect--+-TRUE--+-'   

>--+-------------------------------------------------------------------------+-->
   |                   (3)                                                   |   
   +-| DBRM-Optionen |-------------------------------------------------------+   
   +- -bindOptions-- -"--Bindeoptionen--"--+-------------------------------+-+   
   |                                       '- -verifyPackages--+-DETAIL--+-' |   
   |                                                           '-SUMMARY-'   |   
   '- -verifyPackages--+-DETAIL--+-------------------------------------------'   
                       '-SUMMARY-'                                               

>--+-----------------------------+--+----------------+---------->
   |                   .-FALSE-. |  |            (4) |   
   '- -differenceOnly--+-TRUE--+-'  '-| -grant |-----'   

>--groupOptions--.--Gruppenname--=------------------------------>

>--+--------------------------+--+-----------------------+-----><
   '- -isolationLevel--+-CS-+-'  |                   (5) |   
                       +-RR-+    '-| Traceoptionen |-----'   
                       +-RS-+                                
                       '-UR-'                                

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Sie brauchen die Optionen -url, -username- und -password nicht zu verwenden, wenn Sie nur DBRM-Dateien erstellen.
  3. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
  4. Informationen zur Syntax finden Sie in der Beschreibung dieser Option.
  5. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.

Syntax für den Befehl zur Ausführung des Dienstprogramms StaticBinder ohne Optionsdatei

Sie können mit diesem Befehl die Namen der Schnittstellen oder Implementierungsklassen sowie die Optionen für die Erstellung eines DB2-Pakets oder einer DBRM-Datei angeben.

Das Dienstprogramm StaticBinder erstellt ein Paket für jede Schnittstelle oder Implementierungsklasse, die Sie angeben. Wenn Sie die Option -rootPkgName bei der Ausführung des Dienstprogramms Generator nicht verwendet haben, ist der Stammname für jedes Paket einer dieser beiden Stammnamen:
  • Wenn Ihre Datenbank keine langen Paketnamen unterstützt: Der Stammname wird aus den ersten 7 Zeichen im Namen der entsprechenden Schnittstelle gebildet. Wenn zwei oder mehr Schnittstellen Namen aufweisen, die mit den gleichen 7 Zeichen anfangen, überschreibt das Paket, das für die zweite dieser Schnittstellen erstellt wird, das für die erste Schnittstelle erstellte Paket, und das Paket, das für die dritte dieser Schnittstellen erstellt wird, überschreibt das für die zweite Schnittstelle erstellte Paket etc.
  • Wenn Ihre Datenbank lange Paketnamen unterstützt: Der Stammname ist der vollständige Name der entsprechenden Schnittstelle.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
                                        (1)   
>>-java--com.ibm.pdq.tools.StaticBinder------------------------->

    (2)                                                                  
>-------- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-->
                                             '-:--Port-'                 

>-- -username--Benutzer-ID-- -password--Kennwort---------------->

>--+-------------------------------------------------------------------------+-->
   |                   (3)                                                   |   
   +-| DBRM-Optionen |-------------------------------------------------------+   
   +- -bindOptions-- -"--Bindeoptionen--"--+-------------------------------+-+   
   |                                       '- -verifyPackages--+-DETAIL--+-' |   
   |                                                           '-SUMMARY-'   |   
   '- -verifyPackages--+-DETAIL--+-------------------------------------------'   
                       '-SUMMARY-'                                               

>--+-----------------------------+--+----------------+---------->
   |                   .-FALSE-. |  |            (4) |   
   '- -differenceOnly--+-TRUE--+-'  '-| -grant |-----'   

>--groupOptions--.--Gruppenname--=------------------------------>

>--+--------------------------+--+-----------------------+------>
   '- -isolationLevel--+-CS-+-'  |                   (5) |   
                       +-RR-+    '-| Traceoptionen |-----'   
                       +-RS-+                                
                       '-UR-'                                

                .--------------------------.   
                V                          |   
>-- -interface----Java-Paket.Schnittstelle-+-------------------><

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Sie brauchen die Optionen -url, -username- und -password nicht zu verwenden, wenn Sie nur DBRM-Dateien erstellen.
  3. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
  4. Informationen zur Syntax finden Sie in der Beschreibung dieser Option.
  5. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.

Syntax für den Befehl zur Ausführung des Dienstprogramms StaticBinder mit Optionsdatei

Sie können die Namen von Schnittstellen und die Optionen für die Erstellung von DB2-Paketen oder DBRM-Dateien, die auf jeder dieser Schnittstellen basieren über den Befehl und eine Optionsdatei angeben.

Achtung: Sie können Implementierungsklassen in einer Befehlszeile angeben, wenn Sie keine Optionsdatei verwenden, aber nicht, wenn Sie eine Optionsdatei verwenden.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
                                        (1)   
>>-java--com.ibm.pdq.tools.StaticBinder------------------------->

>--+--------------------------------------------------------------------------------------------------------------+-->
   '- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-- -username--Benutzer-ID-- -password--Kennwort-'   
                                         '-:--Port-'                                                                  

>--+--------------------------------------------------+--------->
   |              .---------------------------------. |   
   |              V                                 | |   
   '- -interface----Java-Paket.Schnittstelle.Klasse-+-'   

>-- -optionsFile--Dateiname--+-----------------------+---------->
                             |                   (2) |   
                             '-| Traceoptionen |-----'   

>--+-------------------------------+---------------------------><
   '- -verifyPackages--+-DETAIL--+-'   
                       '-SUMMARY-'     

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.

Syntax zur Angabe von Standardoptionen in einer Optionsdatei für das Dienstprogramm StaticBinder

Dieses Syntaxdiagramm zeigt die Standardoptionen, die Sie für alle in einer Optionsdatei aufgeführten Schnittstellen festlegen können.

Syntaxdiagramm lesenSyntaxdiagramm überspringen
                     (1)   
>>-defaultOptions--=-------------------------------------------->

>--+--------------------------------------------------------------------------------------------------------------------+-->
   |  (2)                                                                                                               |   
   '------- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-- -username--Benutzer-ID-- -password--Kennwort-'   
                                               '-:--Port-'                                                                  

>--+------------------------------------------+----------------->
   '-+- -bindOptions-- -"--Bindeoptionen--"-+-'   
     |                   (3)                |     
     '-| DBRM-Optionen |--------------------'     

>--+----------------+--+--------------------------+------------->
   |            (4) |  '- -isolationLevel--+-CS-+-'   
   '-| -grant |-----'                      +-RR-+     
                                           +-RS-+     
                                           '-UR-'     

>--+-----------------------+-----------------------------------><
   |                   (5) |   
   '-| Traceoptionen |-----'   

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Sie brauchen die Optionen -url, -username- und -password nicht zu verwenden, wenn Sie nur DBRM-Dateien erstellen.
  3. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
  4. Informationen zur Syntax finden Sie in der Beschreibung dieser Option.
  5. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.

Syntax zur Angabe von Optionen für einzelne Schnittstellen in einer Optionsdatei für das Dienstprogramm StaticBinder

Dieses Syntaxdiagramm zeigt die Optionen, die Sie für jede in einer Optionsdatei aufgeführte Schnittstelle festlegen können.

Syntaxdiagramm lesenSyntaxdiagramm überspringen
                               (1)   
>>-Java-Paket.Schnittstelle--=---------------------------------->

>--+--------------------------------------------------------------------------------------------------------------------+-->
   |  (2)                                                                                                               |   
   '------- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-- -username--Benutzer-ID-- -password--Kennwort-'   
                                               '-:--Port-'                                                                  

>--+------------------------------------------+----------------->
   '-+- -bindOptions-- -"--Bindeoptionen--"-+-'   
     |                   (3)                |     
     '-| DBRM-Optionen |--------------------'     

>--+----------------+--+--------------------------+------------><
   |            (4) |  '- -isolationLevel--+-CS-+-'   
   '-| -grant |-----'                      +-RR-+     
                                           +-RS-+     
                                           '-UR-'     

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Sie brauchen die Optionen -url, -username- und -password nicht zu verwenden, wenn Sie nur DBRM-Dateien erstellen.
  3. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
  4. Informationen zur Syntax finden Sie in der Beschreibung dieser Option.

Syntax zur Angabe eines Eintrags 'groupOptions' in einer Optionsdatei für das Dienstprogramm StaticBinder

Dieses Syntaxdiagramm zeigt die Optionen an, die Sie für Schnittstellen festlegen können und die auf eine Gruppe von Java-Schnittstellen mit der Gruppen-ID Gruppenname angewendet werden. Der Gruppenname wird einer Schnittstelle mit der pureQuery-Annotation @Group hinzugefügt. Beim Wert von Gruppenname muss die Groß-/Kleinschreibung beachtet werden.

Eine Zeile für groupOptions.Gruppenname kann mehrmals für denselben Gruppennamen vorhanden sein.

Syntaxdiagramm lesenSyntaxdiagramm überspringen
                                   (1)   
>>-groupOptions--.--Gruppenname--=------------------------------>

>--+--------------------------------------------------------------------------------------------------------------------+-->
   |  (2)                                                                                                               |   
   '------- -url--jdbc--:--db2--:--//--Server--+---------+--/--Datenbank-- -username--Benutzer-ID-- -password--Kennwort-'   
                                               '-:--Port-'                                                                  

>--+------------------------------------------+----------------->
   '-+- -bindOptions-- -"--Bindeoptionen--"-+-'   
     |                   (3)                |     
     '-| DBRM-Optionen |--------------------'     

>--+----------------+--+--------------------------+------------->
   |            (4) |  '- -isolationLevel--+-CS-+-'   
   '-| -grant |-----'                      +-RR-+     
                                           +-RS-+     
                                           '-UR-'     

>--+-----------------------+-----------------------------------><
   |                   (5) |   
   '-| Traceoptionen |-----'   

Anmerkungen:
  1. Sie können die Optionen in beliebiger Reihenfolge angeben.
  2. Sie brauchen die Optionen -url, -username- und -password nicht zu verwenden, wenn Sie nur DBRM-Dateien erstellen.
  3. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
  4. Informationen zur Syntax finden Sie in der Beschreibung dieser Option.
  5. Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.

Dienstprogramm StaticBinder über eine Anwendung ausführen

Verwenden Sie die Methode bind() der Klasse com.ibm.pdq.tools.StaticBinder, um die SQL-Anweisungen Ihrer Anwendung während der Ausführung in DB2-Paketen zu binden. Die Methode gibt den Wert FALSE zurück, wenn die Bindeoperation fehlschlägt, und den Wert TRUE, wenn die Bindeoperation erfolgreich ausgeführt wird.

Die Methode verwendet zwei Parameter. Beim ersten handelt es sich um einen String-Array zum Übergeben von Argumenten an das Dienstprogramm StaticBinder. Der zweite ist ein PrintWriter-Objekt, an das das Dienstprogramm Nachrichten und Ausnahmebedingungen ausgeben kann.

Es folgt ein Beispiel für einen Aufruf an die Methode bind():

StaticBinder binder = new StaticBinder ();
PrintWriter  out = new PrintWriter(
	  new FileWriter("BinderOutput.txt"));
String[] argsArray = {"-user","Benutzername","-password","Kennwort", 
	  "-url","JDBC-URL","-interface","Schnittstellenklasse"};
Boolean check=binder.bind(argsArray, out);

Beschreibungen der Optionen

-archive Archivdatei
Verwenden Sie diese Option, wenn Sie Ihre Anwendung in einer Archivdatei auf einem DB2-Server implementiert haben und SQL-Anweisungen durch das Ausführen von StaticBinder auf diesem Server binden wollen. Geben Sie für Archivdatei das Archiv an, das Ihre Anwendung enthält. Das Archiv muss die Schnittstellen und Implementierungsklassen enthalten, die dem Dienstprogramm StaticBinder zur Verfügung gestellt werden sollen. Verwenden Sie eine Optionsdatei mit der Erweiterung .bindProps, in der die Schnittstellen und Implementierungsklassen aufgelistet sind. Es werden folgende Archivtypen unterstützt: .ear-, .jar-, .war- und .zip-Dateien.

Das Archiv kann eine Optionsdatei mit der Erweiterung .bindProps enthalten, in der die pureQueryXML-Dateien aufgelistet sind, die Sie dem Dienstprogramm StaticBinder zur Verfügung stellen. Wenn Sie im Befehl keine .bindProps-Datei angeben, sucht das Dienstprogramm StaticBinder im Archiv nach einer solchen Datei. Das Dienstprogramm StaticBinder verwendet die erste .bindProps-Datei, die im Archiv gefunden wird. Das Dienstprogramm beginnt in einer EAR-, JAR- oder WAR-Datei der höchsten Ebene mit der Suche.

Wenn Sie im StaticBinder-Befehl den Namen der .bindProps-Datei angeben, wird die angegebene Datei verwendet.

Wenn DAO-Implementierungen mit der Option -archive gebunden werden, lädt das Dienstprogramm StaticBinder Implementierungsklassen, um Informationen aus diesen Klassen abzurufen. Das Laden der Klassen erfordert möglicherweise, dass abhängige Klassen aus dem EAR-, JAR- oder WAR-Dateien ebenfalls geladen werden.

Während der Bindeoperation, bei der die Option archive verwendet wird, gibt das Dienstprogramm StaticBinder möglicherweise Fehler zu nicht gefundenen Klassen zurück. Diese Fehler können beispielsweise von einigen Unternehmensanwendungen zurückgegeben werden, die den Kontext eines Anwendungsservers erfordern.

Sie können die Ladeabhängigkeiten des Dienstprogramms StaticBinder minimieren, indem Sie die Apache-BCEL (Byte Code Engineering Library) in den Klassenpfad stellen. Wenn die BCEL für das Dienstprogramm StaticBinder verfügbar ist, schließt das Dienstprogramm Implementierungsabhängigkeiten mithilfe der Bytecode-Modifikation aus und minimiert die Anzahl der geladenen Klassen. In den meisten Fällen können Fehler aufgrund von nicht gefundenen Klassen durch das Hinzufügen der Bibliothek zum Klassenpfad behoben werden.

Die Apache-BCEL-JAR-Datei gehört nicht zum Lieferumfang von pureQuery Runtime. Die BCEL kann über die Website des Apache-Projekts heruntergeladen werden.

-autoDetect TRUE|FALSE
Gibt an, ob das Dienstprogramm StaticBinder versuchen soll, alle pureQuery-Implementierungsdateien und pureQueryXML-Dateien, die sich an den Standardorten in der Archivdatei für Anwendungsklassen befinden, zu finden. Die Werte TRUE und FALSE werden unterstützt.

Wenn die Option mit dem Wert FALSE angegeben wird, durchsucht das Dienstprogramm StaticBinder die Archivdatei nicht.

Wenn die Option mit dem Wert TRUE angegeben wird, sucht das Dienstprogramm StaticBinder in der Archivdatei nach Schnittstellenimplementierungsklassen. StaticBinder durchsucht die Typen von Archivdateien auf folgende Weise nach Implementationsklassen:
  • Wenn das Archiv eine JAR-Datei ist, sucht das Dienstprogramm StaticBinder auf der Stammebene und anschließend in den Verzeichnissen der JAR-Datei nach Implementierungsklassen. Alle eingebetteten JAR-Dateien, die sich in der JAR-Datei der obersten Ebene befinden, werden weder geöffnet noch durchsucht.
  • Wenn das Archiv eine WAR-Datei ist, sucht das Dienstprogramm StaticBinder zuerst nach darin enthaltenen JAR-Dateien. Die JAR-Datei wird wie zuvor beschrieben geöffnet und durchsucht. Dann werden die Verzeichnisse der WAR-Datei durchsucht.
  • Wenn das Archiv eine EAR-Datei ist, sucht das Dienstprogramm StaticBinder zuerst nach darin enthaltenen WAR-Dateien. Die WAR-Datei wird wie zuvor beschrieben geöffnet und durchsucht. Dann werden die Verzeichnisse der EAR-Datei durchsucht.

Wenn eine Eigenschaftendatei des Dienstprogramms StaticBinder explizit mit der Eigenschaft -optionsFile angegeben wird, führt das Dienstprogramm StaticBinder den Bindeprozess mit den Artefakten aus, die in der Eigenschaftendatei angegeben wurden. Anschließend wird der Bindeprozess mit Dateien ausgeführt, die im Archiv gefunden werden, aber nicht in den Eigenschaftendateien angegeben wurden. Das Dienstprogramm sucht nicht nach .bindprops-Dateien, wenn die Eigenschaft -optionsFile angegeben wurde.

Anmerkung: Das Dienstprogramm StaticBinder bindet nicht dieselbe Datei zweimal, wenn die Datei explizit in einer .bindprops-Datei angegeben wurde und wenn die Datei beim Suchsuchen der Archivdatei ebenfalls gefunden wurde. Die in der Optionsdatei angegebenen Optionen haben Vorrang vor den beim Durchsuchen der Archivdatei gefundenen Optionen.
Wenn die Eigenschaftendatei nicht explizit mit der Eigenschaft -optionsFile angegeben wird, geschieht Folgendes:
  • Das Dienstprogramm StaticBinder durchsucht die Archivdatei nach Eigenschaftendateien, die die Erweiterung .bindprops haben. Wenn eine einzelne .bindprops-Datei gefunden wird, wird sie so verwendet, als ob die Bindeeigenschaften der Datei explizit mit der Eigenschaft -optionsFile angegeben worden wären. Das Dienstprogramm meldet einen Fehler zurück, wenn mehrere Optionsdateien gefunden werden.
  • Wenn keine .bindprops-Eigenschaftendateien gefunden werden, führt das Dienstprogramm StaticBinder eine Bindeoperation für die im Archiv gefundenen Artefakte mit den Standardeigenschaften und -bindeoptionen sowie mit paketbezogenen Eigenschaften, die in der pureQuery-Implementierungsdatei angegeben wurden, aus. Beispielsweise werden in einem solchen Fall die informationspaketbezogenen Eigenschaften collection, forceSingleIsolation und pkgVersion verwendet.

Wenn eine Bindoperation mit in der Archivdatei gefundenen Dateien ausgeführt wird, verwendet das Dienstprogramm StaticBinder die Standardoptionen für die Bindeeigenschaften, die von anderen StaticBinder-Optionen angegeben wurden. Die Bindeoption kann z. B. in der Zeile -defaultOptions angegeben werden. Bindeoptionen können auch von einer StaticBinder-Eigenschaft -groupOptions angegeben werden, wenn eine Annotation in der Implementierungsklasse angegeben ist, die eine IGroupId-Annotation angibt.

-bindOptions "Zeichenfolge_mit_Bindeoptionen"
Diese Optionen haben dieselbe Funktion wie die DB2-Vorkompilierungs- und Bindeoptionen mit denselben Namen. Wenn Sie Ihr Programm für die Ausführung auf einem System mit DB2 for z/OS vorbereiten, müssen Sie die Optionen für DB2 for z/OS angeben. Wenn Sie Ihr Programm für die Ausführung auf einem System mit DB2 for Linux, UNIX, and Windows vorbereiten, müssen Sie Optionen für DB2 for Linux, UNIX, and Windows angeben.

Die Syntax der Zeichenfolge lautet "Option_1 Wert_1 Option_2 Wert_2".

Eine Liste sowie eine Beschreibung dieser Optionen finden Sie in BIND (Befehl).
Die Bindeoption REOPT kann im pureQuery-Code nützlich sein. Sie können mit dieser Option Parametermarken in SQL-Anweisungen verwenden und dabei trotzdem DB2-Zugriffspfade optimieren. Informationen zum Verwenden dieser Option mit unterstützten DB2-Datenbanken finden Sie über die folgenden Links:
DBRM-Optionen
Mit dieser Option können Sie DBRM-Dateien generieren, anstatt Pakete zu erstellen. Diese Optionen gelten nur, wenn Sie DB2 for z/OS verwenden.

Nachdem das Dienstprogramm StaticBinder die DBRM-Dateien generiert hat, müssen Sie die Dateien in einen Datensatz kopieren. Der Standardname des DBRM-Datensatzes lautet Präfix.DBRMLIB.DATA. Dabei steht Präfix für das übergeordnete Qualifikationsmerkmal, das im TSO-Profil für den Benutzer angegeben ist. Präfix ist in der Regel Ihre Benutzer-ID in TSO.

Wenn der DBRM-Datensatz noch nicht vorhanden ist, müssen Sie ihn erstellen. Der DBRM-Datensatz benötigt Speicherplatz, um alle SQL-Anweisungen zu speichern, wobei zusätzlicher Speicherplatz für jeden Hostvariablennamen und für Headerdaten erforderlich ist. Die Headerdaten benötigen etwa zwei Datensätze für jedes DBRM (Database Request Module - Datenbankanforderungsmodul), 20 Byte für jeden SQL-Datensatz und 6 Byte für jede Hostvariable. Ein exaktes Format des DBRM finden Sie im DBRM-Zuordnungsmakro DSNXDBRM in der Bibliothek Präfix.SDSNMACS.

Im folgenden Syntaxdiagramm werden die Optionen für das Generieren von DBRM-Dateien beschrieben.

Syntaxdiagramm lesenSyntaxdiagramm überspringen
>>- -generateDBRM--+-TRUE--+-- -outputDBRMPath--Pfad-----------><
                   '-FALSE-'                           

-generateDBRM
Gibt an, ob DBRM-Dateien generiert werden sollen, anstatt Pakete zu erstellen. Wenn generateDBRM auf TRUE gesetzt ist, generiert das Dienstprogramm StaticBinder standardmäßig vier DBRM-Dateien, jeweils eine pro Isolationsstufe: CS, RR, RS, UR. Sie können jedoch nur eine DBRM-Datei generieren, wenn Sie die Option -isolationLevel angeben.

Der Stammname der generierten DBRM-Dateien ist der Stammpaketname, den Sie angeben, wenn Sie das Dienstprogramm Generator ausführen. Wenn dieser Name länger als sieben Zeichen ist, gibt StaticBinder eine Ausnahmebedingung aus.

-outputDBRMPath Pfad
Gibt das Verzeichnis an, in dem die generierte DBRM-Datei gespeichert werden soll. Der Standardwert ist das Verzeichnis, aus dem Sie das Dienstprogramm StaticBinder ausführen.
-differenceOnlyTRUE|FALSE
Gibt an, dass DB2-Pakete nicht ersetzt werden sollen, die Objektgruppennamen, Paketnamen und Konsistenztokens aufweisen, die mit diesen Werten für die entsprechenden Anweisungsgruppen innerhalb der pureQueryXML-Datei übereinstimmen, für die Sie das Dienstprogramm StaticBinder ausführen.

Beispiel: Sie führen das Dienstprogramm StaticBinder für eine pureQueryXML-Datei mit den Namen capture.pdqxml aus. Das Dienstprogramm erstellt die Pakete MYPKGA, MYPKGB und MYPKGC. Sie bearbeiten anschließend die Anweisungsgruppe MYPKGA in capture.pdqxml mithilfe der Workbench und führen für die Datei das Dienstprogramm Configure aus, wobei für die Option -cleanConfigure der Standardwert FALSE festgelegt ist. Das Dienstprogramm Configure ordnet der Anweisungsgruppe ein neues Konsistenztoken zu, weil die Gruppe geändert wurde. Wenn Sie das Dienstprogramm StaticBinder für capture.pdqxml erneut ausführen, um die neue Version von MYPKGA zu binden, geben Sie für -differenceOnly den Wert TRUE an. Das Dienstprogramm bindet nur MYPKGA und bindet die übrigen zwei Pakete nicht erneut.

Der Standardwert ist FALSE.
groupOptions.Gruppenname.n = "Zeichenfolge für Bindeeigenschaften"
Gibt die Bindeoptionen an, die auf die Gruppe von Java-Schnittstellen mit der Gruppen-ID Gruppenname angewendet werden. Die Kennung Gruppenname ist eine Annotation @Group, die einen Gruppennamen angibt.
Gruppenname
Die ID für die Gruppe. Der Wert Gruppenname ist die Zeichenfolge, die der Schnittstelle mit der Annotation @Group von pureQuery zugeordnet ist.
n
Eine optionale Kennung zur Angabe mehrerer Gruppen von Bindeoptionen. Mit der Kennung n können Sie Bindeoperationen für die Gruppe mit unterschiedlichen Gruppen von Bindeoptionen ausführen oder die Bindeoperation für mehrere Positionen ausführen.
Zeichenfolge für Bindeeigenschaften
Die Zeichenfolge für die im Bindeprozess für eine beliebige Java-Schnittstelle, der die Kennung Gruppenname zugeordnet ist, zu verwendenden Bindeeigenschaften.

Informationen zur Annotation @Group finden Sie in Steuern, wie pureQuery-Dienstprogramme Schnittstellen verarbeiten.

-grant "grantees(erste_ID,zweite_ID,...)"
Gibt die durch Kommata getrennte Liste der Berechtigten (in Klammern) an, denen Sie das Zugriffsrecht EXECUTE für Pakete erteilen wollen, die das Dienstprogramm StaticBinder erstellt. Wenn Sie diese Option nicht angeben, erteilt das Dienstprogramm StaticBinder dieses Zugriffsrecht nicht.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
                             .-,--------------------.          
                             V                      |          
>>- -grant-- "--grantees--(----+-Berechtigungs-ID-+-+--) - "---><
                               '-PUBLIC-----------'            

grantees
Die durch Kommata getrennte Liste von Berechtigungs-IDs, denen Sie das Zugriffsrecht EXECUTE erteilen wollen. Stellen Sie sicher, dass die Berechtigungs-IDs, die Sie auflisten, für die von Ihnen verwendete DB2-Datenbank gültig sind.

Für DB2 Database for Linux, UNIX, and Windows: Sie können die Schlüsselwörter USER, GROUP und ROLE verwenden. Informationen zu diesen Schlüsselwörtern finden Sie in Anweisung GRANT (Paketzugriffsrechte).

Für DB2 for z/OS: Sie können das Schlüsselwort ROLE verwenden. Informationen zu diesem Schlüsselwort finden Sie in GRANT (Paketzugriffsrechte).

Einschränkung: Sie können die Option -grant nicht verwenden, wenn die Option -generateDBRM den Wert TRUE hat.

-interface Java-Paket.Schnittstellenklasse
Der Name der Schnittstelle oder Schnittstellen, für die das pureQuery-Dienstprogramm Generator eine Implementierungsklasse generiert hat, die SQL-Anweisungen enthält, die Sie in einem DB2-Paket binden möchten. Der Name muss das Java-Paket einschließen, in der sich die Klasse befindet. Das pureQuery-Dienstprogramm StaticBinder verwendet die Kombination aus dem Namen der Schnittstelle und dem Suffix Impl, um die zu verwendende Implementierungsklasse zu bestimmen.
Sie können -interface zusammen mit -optionsFile verwenden, wenn Sie wollen, dass das Dienstprogramm StaticBinder die folgenden zwei Aktionen ausführt:
  • Nur die SQL-Anweisungen in der angegebenen Schnittstelle oder den angegebenen Schnittstellen binden
  • Optionen in der Befehlszeile mit Optionen in der Optionsdatei für die angegebene Schnittstelle oder angegebenen Schnittstellen kombinieren

Wenn die Optionsdatei keine Einträge für die Schnittstelle enthält, verwendet das Dienstprogramm StaticBinder die Bindeoptionen, die sich in der Befehlszeile und in dem Eintrag 'defaultOptions' in der Optionsdatei befinden.

-isolationLevel CS | RR | RS | UR
Gibt an, dass Sie ein einzelnes DB2-Paket oder eine einzelne DBRM-Datei für eine bestimmte Isolationsstufe generieren möchten, anstatt ein DB2-Paket oder eine DBRM-Datei für jede der vier Isolationsstufen zu generieren.

Die Isolationsstufe gilt für alle SQL-Anweisungen, die im Paket enthalten sind. Wenn Sie eine Isolationsstufe über die Methode Connection.setTransactionIsolation() von IBM® Data Server Driver für JDBC und SQLJ definieren, ignoriert pureQuery diese Isolationsstufe für statisch ausgeführte Anweisungen.

UR
Gibt Uncommitted Read als Isolationsstufe an.
Das Dienstprogramm StaticBinder fügt dem Namen des erstellten Pakets bzw. der erstellten DBRM-Datei 1 hinzu, sofern Sie bei der Ausführung des Dienstprogramms Generator nicht die Option -forceSingleBindIsolation verwendet haben.
CS
Gibt Cursor Stability als Isolationsstufe an.
Das Dienstprogramm StaticBinder fügt dem Namen des erstellten Pakets bzw. der erstellten DBRM-Datei 2 hinzu, sofern Sie bei der Ausführung des Dienstprogramms Generator nicht die Option -forceSingleBindIsolation verwendet haben.
RS
Gibt Read Stability als Isolationsstufe an. Read Stability stellt sicher, dass die Ausführung von SQL-Anweisungen im Paket von anderen Anwendungsprozessen für Zeilen isoliert ist, die von der Anwendung gelesen und geändert werden.
Das Dienstprogramm StaticBinder fügt dem Namen des erstellten Pakets bzw. der erstellten DBRM-Datei 3 hinzu, sofern Sie bei der Ausführung des Dienstprogramms Generator nicht die Option -forceSingleBindIsolation verwendet haben.
RR
Gibt Repeatable Read als Isolationsstufe an.
Das Dienstprogramm StaticBinder fügt dem Namen des erstellten Pakets bzw. der erstellten DBRM-Datei 4 hinzu, sofern Sie bei der Ausführung des Dienstprogramms Generator nicht die Option -forceSingleBindIsolation verwendet haben.
Java-Paket.Schnittstelle (am Zeilenanfang in einer Optionsdatei)
Gibt an, dass die Optionen in der Zeile nur für die SQL-Anweisungen in der angegebenen Schnittstelle gelten. Diese Optionen setzen Optionen außer Kraft, die Sie als Standardwerte angeben.
Sie müssen den Namen der Schnittstelle mit dem Namen des Java-Pakets qualifizieren, zu dem die Schnittstelle gehört.
-optionsFile Dateiname
Der Name der Datei, einschließlich ihres absoluten oder relativen Pfads, in der die Schnittstellen aufgelistet werden, die die zu bindenden SQL-Anweisungen enthalten.
-password Kennwort
Das Kennwort, das zum Herstellen einer Verbindung zur Datenquelle verwendet werden soll.
Traceoptionen
Sie können die Datei, in der Nachrichten protokolliert werden sollen, und die zu protokollierende Informationsebene angeben.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
>>-+------------------------+--+---------------------------+---><
   '- -traceFile--Dateiname-'  |               .-OFF-----. |   
                               '- -traceLevel--+-ALL-----+-'   
                                               +-SEVERE--+     
                                               +-WARNING-+     
                                               +-INFO----+     
                                               +-CONFIG--+     
                                               +-FINE----+     
                                               +-FINER---+     
                                               '-FINEST--'     

-traceFile Dateiname
Gibt den absoluten oder relativen Pfad und den Namen der Datei an, die zum Protokollieren von Informationen zur Operation verwendet werden soll.
Falls die Datei bereits vorhanden ist, hängt pureQuery neue Nachrichten an den vorhandenen Inhalt der Datei an. Standardmäßig werden die Einträge in 'System.err' geschrieben.
-traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
Gibt den zu protokollierenden Informationstyp an. Die Standardstufe ist OFF. Wenn Sie keine Datei angeben, in die die Protokolleinträge geschrieben werden sollen, und Sie diese Option auf einen anderen Wert als OFF setzen, werden die Einträge in 'System.err' geschrieben.
-url Verbindungs-URL
Die JDBC-Typ-4-URL für die Verbindung zur Datenbank.
-username Benutzer-ID
Die Benutzer-ID, die zum Herstellen einer Verbindung zur Datenquelle verwendet werden soll.
-verifyPackages DETAIL|SUMMARY
Gibt an, ob das Dienstprogramm StaticBinder einen Bericht über die Pakete erstellt, die für die SQL-Anweisungen, die der Schnittstelle oder Implementierungsklasse zugeordnet sind, vorhanden oder nicht vorhanden sind. Wenn Sie diese Option verwenden, bindet das Dienstprogramm StaticBinder keine Pakete.

Beispiel: Sie führen das Dienstprogramm Generator für eine Schnittstelle mit dem Namen OrdersData aus, die Methoden für das Abfragen und Aktualisieren der Tabelle ORDERS deklariert. Das Dienstprogramm Generator erstellt die Implementierungsklasse OrdersDataImpl.

Beim Ausführen des Dienstprogramms haben Sie Werte für die Optionen -collection, -pkgVersion und -rootPkgName angegeben und das Dienstprogramm hat diese Werte in der Implementierungsklasse gespeichert. Sie führen das Dienstprogramm StaticBinder unter Angabe des Namens dieser Klasse aus und das Dienstprogramm erstellt DB2-Pakete.

Zu einem späteren Zeitpunkt möchten Sie eine Liste der Pakete anzeigen, die das Dienstprogramm StaticBinder anhand der Implementierungsklasse erstellt hat. Beim Ausführen des Dienstprogramms können Sie die Option -verifyPackages mit dem Wert DETAIL verwenden und wiederum den Namen der Klasse angeben.

Wenn die Werte für die Optionen -collection, -pkgVersion und -rootPkgName dieselben sind wie bei der vorherigen Ausführung des Dienstprogramms StaticBinder, findet das Dienstprogramm die Pakete und listet sie auf.

Wenn Sie jedoch das Dienstprogramm Generator für die Schnittstelle OrdersData ausführen würden, nachdem Sie zunächst das Dienstprogramm StaticBinder ausgeführt und die Werte für -collection, -pkgName und -rootPkgName geändert haben, würde das Dienstprogramm StaticBinder keine Pakete finden, die mit den neuen Werten für diese Optionen übereinstimmen. Im zugehörigen Bericht des Dienstprogramms StaticBinder würde stehen, dass die gesuchten Pakete nicht vorhanden sind.

Die Option -verifyPackages funktioniert unter der Voraussetzung, dass Sie, nachdem Sie zuvor die Implementierungsklasse generiert und das Dienstprogramm StaticBinder für die betreffende Klasse oder die zugeordnete Schnittstelle ausgeführt haben, das Dienstprogramm Generator nicht nochmals für die Schnittstelle ausgeführt und andere Werte für -collection, -pkgVersion und -rootPkgName angegeben haben.

Sie können diese Option zusammen mit der Option -bindOptions angeben. Das Dienstprogramm StaticBinder bindet jedoch keine Pakete. Verwenden Sie -bindOptions nur dann zum Angeben der Objektgruppe für die Pakete, die Sie verifizieren möchten, wenn Sie diese Option beim Erstellen der Pakete für die Angabe der Objektgruppe verwendet haben.

DETAIL
Erstellt einen Bericht mit den folgenden Informationen auf Basis der Werte von -collection, -pkgVersion und -rootPkgName:
  • Welche Pakete nicht vorhanden sind.
  • Welche Pakete vorhanden sind. Für jedes Paket werden im Bericht der Name, das Konsistenztoken, die Zeitmarke und die Isolationsstufe aufgelistet.
  • Die Anzahl Pakete, die vorhanden bzw. nicht vorhanden sind.
SUMMARY
Erstellt einen Bericht, in dem auf Basis der Werte für -collection, -pkgVersion und -rootPkgNamevon die Pakete aufgezählt werden, die vorhanden bzw. nicht vorhanden sind.

Feedback