(1) >>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (2) >-------- -url--jdbc--:--db2--:--//--serveur--+---------+--/--base_de_données--> '-:--port-' >-- -username--ID-utilisateur-- -password--motdepasse-----------> >-- -archive-- -nom_fichier--+-.ear-+---------------------------> +-.jar-+ +-.war-+ '-.zip-' >--+------------------------------------------------------------------------------------+--> | (3) | +-| options DBRM |-------------------------------------------------------------------+ +- -bindOptions-- -"--options_définition_accès--"--+-------------------------------+-+ | '- -verifyPackages--+-DETAIL--+-' | | '-SUMMARY-' | '- -verifyPackages--+-DETAIL--+------------------------------------------------------' '-SUMMARY-' >--+-----------------------------+--+----------------+----------> | .-FALSE-. | | (4) | '- -differenceOnly--+-TRUE--+-' '-| -grant |-----' >--+--------------------------+--+--------------------------+---> '- -isolationLevel--+-CS-+-' | (5) | +-RR-+ '-| Options de trace |-----' +-RS-+ '-UR-' >--+--------------------------+-------------------------------->< | .-FALSE-. | '- -showDetails--+-TRUE--+-'
L'archive doit contenir un fichier d'options avec l'extension .bindProps dans lequel figurent les fichiers pureQueryXML que vous transmettez à l'utilitaire StaticBinder. Si vous n'indiquez pas de fichier .bindProps dans la commande, l'utilitaire StaticBinder recherche un fichier .bindProps dans l'archive. StaticBinder utilise le premier fichier .bindProps détecté dans l'archive. L'utilitaire lance la recherche dans les fichiers EAR, JAR ou WAR de niveau supérieur.
Si vous indiquez le nom du fichier .bindProps avec la commande StaticBinder, le fichier indiqué est utilisé.
Lorsque vous liez des implémentations DAO avec l'option -archive, l'utilitaire StaticBinder charge des classes d'implémentation pour obtenir les informations qu'elles contiennent. Le chargement de classes peut nécessiter le chargement de classes dépendantes à partir des fichiers EAR, JAR ou WAR.
Lorsque vous effectuez l'opération de liaison avec l'option -archive, l'utilitaire StaticBinder peut renvoyer des erreurs signalant des classes introuvables. Par exemple, certaines applications d'entreprise nécessitant le contexte d'un serveur d'applications peuvent renvoyer ce type d'erreur.
Pour limiter les dépendances de chargement de l'utilitaire StaticBinder, vous pouvez placer la bibliothèque BCEL d'Apache dans le chemin de classe. Lorsque l'utilitaire StaticBinder dispose de la bibliothèque BCEL, il utilise la modification de code d'octets pour exclure les dépendances d'implémentation et limiter le nombre de classes chargées. Dans la plupart des cas, l'ajout de la bibliothèque au chemin de classe résout les erreurs liées à des classes introuvables.
Le fichier JAR BCEL d'Apache n'est pas fourni avec pureQuery Runtime. La bibliothèque BCEL est disponible sur le site du projet Apache.
La valeur de chaque option ne doit pas contenir d'espaces.
Pour la liste et les descriptions de ces options, voir Commande BIND.
Une fois les fichiers DBRM créés par l'utilitaire StaticBinder, vous devez les copier dans un fichier. Le nom du fichier DBRM est préfixe.DBRMLIB.DATA, où préfixe représente le qualificatif de haut niveau qui est indiqué dans le profil TSO de l'utilisateur. En règle générale, préfixe correspond à votre ID utilisateur dans TSO.
Si le fichier DBRM n'existe pas, vous devez le créer. Ce fichier doit disposer de suffisamment d'espace pour contenir toutes les instructions SQL, avec un supplément d'espace pour chaque nom de variable hôte ainsi qu'un certain nombre d'informations d'en-tête. Les informations d'en-tête requièrent environ deux enregistrements pour chaque package d'interrogation de base de données (DBRM), et il faut prévoir 20 octets pour chaque enregistrement SQL et 6 octets pour chaque variable hôte. Pour le format DBRM précis, reportez-vous à la macro de mappage DBRM, DSNXDBRM, dans la bibliothèque préfixe.SDSNMACS.
Le diagramme de syntaxe suivant décrit les options permettant de générer des fichiers DBRM.
.-FALSE-. >>- -generateDBRM--+-TRUE--+-- -outputDBRMPath--chemin---------><
Le nom racine des fichiers DBRM générés est le nom de package racine que vous indiquez lorsque vous exécutez l'utilitaire Configure.
La valeur par défaut est FALSE.
Par exemple, supposez que vous avez exécuté l'utilitaire StaticBinder sur un fichier pureQueryXML appelé capture.pdqxml. L'utilitaire crée les package MYPKGA, MYPKGB et MYPKGC. Vous modifiez ensuite l'ensemble d'instructions MYPKGA dans capture.pdqxml avec le plan de travail et vous exécutez l'utilitaire Configure sur ce fichier, avec l'option -cleanConfigure associée à sa valeur par défaut FALSE. L'utilitaire Configure affecte une nouvelle marque de cohérence à l'ensemble d'instructions car ce jeu a été modifié. Lorsque vous exécutez à nouveau l'utilitaire StaticBinder sur capture.pdqxml pour définir les accès de la nouvelle version de MYPKGA, vous spécifiez -differenceOnly TRUE. L'utilitaire redéfinit uniquement les accès de MYPKGA et non ceux des deux autres packages.
.-,-------------------. V | >>- -grant-- "--grantees--(----+-ID-autorisation-+-+--) - "---->< '-PUBLIC----------'
Pour DB2 Database for Linux, UNIX et Windows : vous pouvez utiliser les mots clés USER, GROUP et ROLE. Pour tout détail concernant ces mots clés, voir GRANT (Package Privileges) statement.
Pour DB2 for z/OS : vous pouvez utiliser le mot clé ROLE. Pour tout détail concernant ce mot clé, voir GRANT (package privileges).
Restriction : Vous ne pouvez pas utiliser l'option -grant lorsque l'option -generateDBRM a pour valeur TRUE.
Le niveau d'isolement s'applique à toutes les instructions SQL du package. Si vous définissez un niveau d'isolement à l'aide de la méthode Connection.setTransactionIsolation() du pilote IBM® Data Server Driver for JDBC and SQLJ, pureQuery ignore ce niveau d'isolement pour les instructions exécutées de manière statique.
>>-+--------------------------+---------------------------------> '- -traceFile--nom_fichier-' >--+---------------------------+------------------------------->< | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
-url jdbc:db2://localhost:50000/SAMPLE:enableNamedParameterMarkers=1;
Par exemple, admettons que vous exécutiez l'utilitaire Configure sur un fichier pureQueryXML appelé myApp.pdqxml. Lors de l'exécution de l'utilitaire, vous avez indiqué les valeurs des options -collection, -pkgVersion, et -rootPkgName, et l'utilitaire a stocké ces valeurs dans le fichier pureQueryXML. Vous exécutez l'utilitaire StaticBinder, en indiquant le nom de ce fichier, et l'utilitaire crée les packages DB2.
Plus tard, vous souhaitez afficher une liste des packages créés par l'utilitaire StaticBinder à partir du fichier pureQueryXML. Lorsque vous exécutez l'utilitaire, vous pouvez utiliser l'option -verifyPackages, en indiquant la valeur DETAIL, puis en indiquant à nouveau le nom du fichier.
L'option -verifyPackages ne fonctionne pas si, suite à l'exécution de l'utilitaire Configure puis de l'utilitaire StaticBinder sur un fichier pureQueryXML, vous avez exécuté à nouveau l'utilitaire Configure sur ce fichier et indiqué des valeurs différentes pour les options -collection, -pkgVersion, et -rootPkgName.
Si vous avez exécuté l'utilitaire Configure sur myApp.pdqxml après l'exécution de l'utilitaire StaticBinder et que vous avez modifié la valeur de l'une des options -collection, -pkgName ou -rootPkgName, l'utilitaire StaticBinder ne détecte pas de packages correspondant à ces nouvelles valeurs. Dans son rapport, l'utilitaire StaticBinder indique que les packages recherchés sont introuvables.
Si les valeurs des options -collection, -pkgVersion, et -rootPkgName sont identiques à celles définies lors de la précédente exécution de l'utilitaire StaticBinder, l'utilitaire trouve les packages et les répertorie.
Vous pouvez indiquer cette option avec l'option -bindOptions. Cependant, l'utilitaire StaticBinder ne définira pas les accès des packages. Utilisez -bindOptions uniquement pour indiquer la collecte des packages que vous souhaitez vérifier si vous avez utilisé cette option pour spécifier la collecte lors de la création des packages.