Syntaxe des entrées du fichier Default.genProps permettant de configurer l'exécution en mode statique d'instructions SQL dans des applications d'API différentes de pureQuery

Utilisez le fichier Default.genProps pour définir les options applicables aux modules DB2 devant contenir les instructions SQL dont les accès ont été définis.

Cliquez deux fois sur ce fichier pour l'ouvrir avec un éditeur dans le plan de travail. Le fichier se trouve dans le dossier dataAccessFolder de votre projet Java.

Dans ce fichier, vous pouvez spécifier des options qui s'appliquent à tous les fichiers pureQueryXML inclus dans votre projet. Vous pouvez également spécifier des options propres à chaque fichier pureQueryXML.

Vous pouvez ajouter des commentaires à ce fichier. Chaque commentaire doit commencer par le symbole #.

Lorsque vous créez ou éditez des entrées, il vous est possible d'afficher une aide en appuyant sur les touches CTRL+ESPACE (ou sur votre propre combinaison de touches si vous avez changé la combinaison par défaut).

Pour vous aider à comprendre les diagrammes de syntaxe, voir Comment lire les diagrammes de syntaxe.

Une fois le fichier enregistré, le plan de travail exécute l'utilitaire Configure sur ce fichier et actualise la vue Structure SQL. A ce stade, la vue se limite toujours à l'affichage des modules dont les accès n'ont pas été définis, dans la mesure où vous n'avez pas encore procédé à cette définition.

Le diagramme ci-après illustre la syntaxe admise pour la définition des options par défaut applicables à tous les fichiers pureQueryXML répertoriés dans le fichier.

Lire le diagrammeSauter le diagramme
>>-defaultOptions--=--+----------------------------------+------>
                      |               .-NULLID---------. |   
                      '- -collection--+-nom_collection-+-'   

>--+--------------------------------+--------------------------->
   '- -pkgVersion-- -+-AUTO-------+-'   
                     '-ID_version-'     

>--+--------------------------------------------------------+--->
   '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-'   
                                 +-READ_ONLY_SCROLLABLE---+     
                                 +-READ_ONLY_FORWARD_ONLY-+     
                                 '-NEVER------------------'     

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

>--+------------------------+--+--------------------------+----><
   |             .-100----. |  |                      (1) |   
   '- -sqlLimit--+-nombre-+-'  '-| Options de trace |-----'   

Remarques:
  1. Pour la syntaxe, voir la description de ces options.

Le diagramme ci-après illustre la syntaxe admise pour la définition des options individuellement applicables aux différents fichiers pureQueryXML répertoriés dans le fichier.

Lire le diagrammeSauter le diagramme
>>-fichier_pureQueryXML--+----------------------------------+--->
                         |               .-NULLID---------. |   
                         '- -collection--+-nom_collection-+-'   

>--+--------------------------------+--------------------------->
   '- -pkgVersion-- -+-AUTO-------+-'   
                     '-ID_version-'     

>-- -rootPkgName--racine_nom_package---------------------------->

>--+--------------------------------------------------------+--->
   '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-'   
                                 +-READ_ONLY_SCROLLABLE---+     
                                 +-READ_ONLY_FORWARD_ONLY-+     
                                 '-NEVER------------------'     

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

                                             (1)   
>--+---------------------------------------+-------------------->
   |                             .-FALSE-. |       
   '- -forceSingleBindIsolation--+-TRUE--+-'       

>--+-----------------------------------------------------------------+-->
   |                        .-----------------------------------.    |   
   |                        V                                   |    |   
   '- -replaceLocations--"----(--nom_origine-->--nouveau_nom--)-+--"-'   

>--+---------------------------------------------------------------+-->
   |                      .-----------------------------------.    |   
   |                      V                                   |    |   
   '- -replaceSchemas--"----(--nom_origine-->--nouveau_nom--)-+--"-'   

>--+------------------------+--+--------------------------+----><
   |             .-100----. |  |                      (2) |   
   '- -sqlLimit--+-nombre-+-'  '-| Options de trace |-----'   

Remarques:
  1. Les options -replaceLocations et -replaceSchemas exigent que le fichier JAR pdqsqlparser.jar figure dans le chemin d'accès aux classes. Ces options sont prises en charge avec DB2 for z/OS Version 10 et DB2 for Linux, UNIX, mais aussi avec Windows Version 9.8. Un avertissement est émis si une base de données non prise en charge est détectée.
  2. Pour la syntaxe, voir la description de ces options.
fichier_pureQueryXML
Indique que les options de la ligne s'appliquent uniquement aux instructions SQL qui se trouvent dans le fichier pureQueryXML. Ces options remplacent celles que vous spécifiez par défaut.
Le nom de ce fichier doit se terminer par l'extension .pdqxml ou .xml.

En plus du nom, vous devez indiquer le chemin d'accès absolu du fichier.

-allowStaticRowsetCursors
Utilisez cette option lorsque vous souhaitez qu'il y ait une différence entre les instructions utilisant des curseurs d'ensemble de lignes lors de la capture et les instructions utilisant des curseurs d'ensemble de lignes lors de l'exécution statique. Voici des exemples de situations dans lesquelles cela peut se produire :
  • Vous souhaitez utiliser les curseurs d'ensemble de lignes lors de l'exécution statique, mais vous avez effectué une capture avec une base de données autre que DB2 for z/OS. Par exemple, vous avez effectué la capture à l'aide de DB2 for Linux, UNIX et Windows.
  • Votre environnement de capture a utilisé des curseurs d'ensemble de lignes, mais vous ne souhaitez pas utiliser des ensembles de lignes lors de l'exécution statique,
  • Vous souhaitez utiliser des curseurs d'ensemble de lignes lors de l'exécution statique. Vous avez effectué la capture sur DB2 for z/OS, et vous allez procéder à l'exécution statique sur DB2 for z/OS, mais utiliserez un type de pilote de périphérique différent pour les deux opérations. Par exemple, si vous avez effectué une capture à l'aide d'un pilote IBM® Data Server Driver for JDBC and SQLJ T4, mais procéderez à l'exécution statique avec un pilote IBM Data Server Driver for JDBC and SQLJ T2, vous pouvez souhaiter spécifier l'option "-allowStaticRowsetCursors READ_ONLY". De la même façon, si vous avez effectué la capture à l'aide du pilote IBM Data Server Driver for JDBC and SQLJ T2, mais que vous allez procéder à l'exécution statique avec un pilote IBM Data Server Driver for JDBC and SQLJ T4, vous pouvez souhaiter spécifier "-allowStaticRowsetCursors READ_ONLY_SCROLLABLE".
  • Vous souhaitez utiliser des curseurs d'ensemble de lignes lors de l'exécution statique. Votre fichier de capture a été créé avec une version de pureQuery antérieure à 2.2 ; aucune des instructions y figurant sont marquées comme utilisant des curseurs d'ensemble de lignes.

Seul DB2 for z/OS prend en charge les curseurs d'ensemble de lignes. Les curseurs d'ensemble de lignes sont utilisés uniquement quand les propriétés IBM Data Server Driver for JDBC and SQLJ le requièrent. Si vous effectuez la capture depuis un type de données source différent, ou sans activer les curseurs d'ensemble de lignes, aucune des instructions capturées n'utilise de curseur d'ensemble de lignes.

Lorsque les curseurs d'ensemble de lignes ne sont pas utilisés pour les curseurs de défilement vers l'avant, une connexion de Type 4 peut utiliser de façon interne un mécanisme similaire pour atténuer le trafic réseau.

Cette option prend l'une des quatre valeurs suivantes :

READ_ONLY
Indique que les instructions SELECT ne sélectionnant pas de colonne de type de données LOB ou XML sont autorisées à utiliser les curseurs d'ensemble de lignes (qui ouvrent les curseurs en lecture seule de défilement vers l'avant ou flottants). Les autres instructions SELECT ne sont pas autorisées à utiliser des curseurs d'ensemble de lignes.
Cette option ajoute l'attribut allowStaticRowsetCursors à chaque instruction SELECT du fichier pureQueryXML qui remplit les critères et définit la valeur sur TRUE dans chaque cellule.
READ_ONLY_SCROLLABLE
Indique que les instructions SELECT ouvrant les curseurs de lecture uniquement, flottants et ne sélectionnant aucune colonne de type de données LOB ou XML sont autorisées à utiliser les curseurs d'ensemble de lignes. Les autres instructions SELECT ne sont pas autorisées à utiliser des curseurs d'ensemble de lignes.
Cette option ajoute l'attribut allowStaticRowsetCursors à chaque instruction SELECT du fichier pureQueryXML qui remplit les critères et définit la valeur sur TRUE dans chaque cellule.
READ_ONLY_FORWARD_ONLY
Indique que les instructions SELECT ouvrant les curseurs de lecture uniquement, les curseurs de défilement vers l'avant et ceux ne sélectionnant pas les colonnes de types de données LOB ou XML sont autorisées à utiliser les curseurs d'ensemble de lignes. Les autres instructions SELECT ne sont pas autorisées à utiliser des curseurs d'ensemble de lignes.
Cette option ajoute l'attribut allowStaticRowsetCursors à chaque instruction SELECT du fichier pureQueryXML qui remplit les critères et définit la valeur sur TRUE dans chaque cellule.
NEVER
Indique qu'aucune instruction SELECT n'est autorisée à utiliser les curseurs d'ensemble de lignes.
Cette option ajoute l'attribut allowStaticRowsetCursors à chaque instruction SELECT du fichier pureQueryXML et définit la valeur de chaque cellule sur FALSE. Si vous souhaitez activer les curseurs d'ensemble de lignes pour un sous-ensemble d'instructions SELECT, vous pouvez définir cet attribut sur TRUE dans le plan de travail.

Cette option n'est pas nécessaire si l'une de ces conditions est remplie :

  • Le pilote IBM Data Server Driver for JDBC and SQLJ est défini pour utiliser l'extraction de plusieurs lignes pour les curseurs flottants. Vous avez capturé les instructions SELECT en les exécutant sur un serveur de données DB2 for z/OS et en utilisant une connexion T4. Vous prévoyez d'exécuter les instructions de façon statique sur le même serveur ou un serveur compatible en utilisant une connexion T4.
  • Vous définissez le pilote IBM Data Server Driver for JDBC and SQLJ pour qu'il utilise l'extraction de plusieurs lignes pour les curseurs de défilement vers l'avant et les curseurs flottants. Vous avez capturé les instructions SELECT en les exécutant sur un serveur de données DB2 for z/OS et en utilisant une connexion T2. Vous prévoyez d'exécuter les instructions de façon statique sur le même serveur de données ou sur un serveur compatible en utilisant une connexion T2.
Pour autoriser les instructions SQL à utiliser des curseurs d'ensemble de lignes lorsque pureQuery les exécute de façon statique, les conditions suivantes doivent être remplies :
  • Les instructions capturées doivent être des instructions SELECT.
  • Aucune de ces instructions n'est exécutée par une procédure mémorisée.
  • Aucune des colonnes des résultats de requête ne contiennent des données de type LOB ou XML.
  • Les curseurs ouverts par les instructions sont en lecture seule. Si un curseur statique actualisable utilise des ensembles de lignes, le résultat est imprévisible.

    pureQuery considère qu'une instruction est actualisable si l'une de ces conditions est vraie :

    • L'attribut concurrent est défini sur java.sql.ResultSet.CONCUR_UPDATABLE.
    • L'instruction SQL contient la clause FOR UPDATE.
    pureQuery considère qu'une instruction est en lecture seule si elle n'est pas actualisable.

Si vous exécutez des instructions de façon statique sur une source de données qui ne prend pas en charge les curseurs d'ensemble de ligne, le curseur de ligne n'est utilisé par pureQuery pour aucune instruction.

L'utilitaire Configure désactive les curseurs d'ensembles de lignes quelle que soit l'instruction SQL pour laquelle pureQuery Runtime ne prend pas en charge ces curseurs, même si IBM Data Server Driver for JDBC and SQLJ les ont utilisés pour ces instructions.

Si vous n'indiquez pas cette option et que pureQuery Runtime prend en charge les curseurs d'ensembles de lignes pour l'instruction, pureQuery les utilise pour les instructions que IBM Data Server Driver for JDBC and SQLJ ont employé lors de la capture des instructions.

-cleanConfigure TRUE | FALSE
Indique la portée de l'exécution de l'utilitaire Configure sur un fichier pureQueryXML.
TRUE
Au cours de l'exécution, toutes les instructions SQL sont organisées en des ensembles d'instructions selon les options spécifiées, telles que sqlLimit, groupSQLByString et groupSQLBySpecialRegister. L'utilitaire Configure réorganise les instructions SQL en ensembles d'instructions, si nécessaire.

Pour tous les ensembles d'instructions, l'utilitaire Configure associe l'attribut configureStatus à la valeur AUTO pendant la procédure de configuration. Remplace la valeur FINAL pour l'attribut configureStatut de l'ensemble d'instructions.

FALSE
Les noms et ID de collecte des ensembles d'instructions sont définis par l'utilitaire Configure dans un fichier pureQueryXML. Les ensembles d'instructions concernés sont ceux dont l'indicateur configureStatus est défini sur REQUIRED ou AUTO, et ceux qui n'ont pas de nom. L'utilitaire Configure modifie les ensembles d'instructions dont l'indicateur configureStatus est défini sur AUTO seulement si l'utilitaire détermine que l'ensemble d'instructions doit être modifié.

FALSE est la valeur par défaut.

Pour les ensembles d'instructions sans nom, la configuration applique toutes les options spécifiées.

Pour les ensembles d'instructions nommés dont l'attribut configureStatus correspond à REQUIRED, certaines options sont appliquées. Les options appliquées comprennent les options -collection, -pkgVersion , -forceSingleBindIsolation et -markDDLForBind. La marque de cohérence est mise à jour. Si vous exécutez des instructions SQL dans l'ensemble d'instructions en mode statique, vous devez relier le package créé à partir de l'ensemble d'instructions.

Pendant la procédure de configuration, l'utilitaire Configure remplace la valeur REQUIRED de configureStatus par AUTO.

Pour les ensembles d'instructions dont l'attribut configureStatus a pour valeur AUTO, l'utilitaire Configure applique les options uniquement s'il détermine que l'ensemble d'instructions doit être modifié. La marque de cohérence n'est pas mise à jour si l'ensemble d'instructions n'est pas modifié. Lorsque l'attribut configureStatus correspond à AUTO et que l'option -pkgVersion est indiquée, l'utilitaire met à jour l'ensemble d'instructions en utilisant l'ID version. Si vous exécutez des instructions SQL de l'ensemble d'instructions de manière statique et que l'ensemble d'instructions a été modifié, vous devez lier une nouvelle fois le package créé à partir de l'ensemble d'instructions.

Pour les ensembles d'instructions nommés dont l'attribut configureStatus correspond à FINAL, l'utilitaire Configure affiche des erreurs lorsque des problèmes liés à l'ensemble d'instructions sont détectés. Les erreurs comprennent des numéros de section en ordre décroissant et des instructions de mise à jour de position non associées à une instruction SELECT. L'utilitaire Configure affiche des avertissements lorsque les instructions doivent être supprimées d'un ensemble d'instructions. Par exemple, une instruction peut être supprimée d'un ensemble d'instructions lorsque l'option -removeSQLInactiveForDays est spécifiée et que l'horodatage de l'instruction correspond aux critères de suppression. Une instruction peut être déplacée vers un autre ensemble d'instructions si les valeurs de registre spécial sont associées aux modifications de l'instruction.

Si l'option -groupSQLBySpecialRegisters est spécifiée, un avertissement est consigné en cas de modification apportée à un attribut du registre spécial. Aucune erreur n'est émise dans ce cas.

-collection nom_collection
Qualificatif des packages pour lesquels l'utilitaire pureQuery StaticBinder définit des accès. Ce qualificatif doit satisfaire aux contraintes applicables aux noms de collection pour la base de données DB2 que vous utilisez.
Si vous ne définissez pas ce paramètre, celui-ci prend la valeur par défaut NULLID.
defaultOptions
Indique que les options figurant sur la ligne s'appliquent aux instructions SQL de tous les fichiers pureQueryXML répertoriés dans ce fichier. Une seule ligne du fichier peut commencer par ce mot clé.
-forceSingleBindIsolation TRUE | FALSE
Indique si vous prévoyez la création d'un package DB2 pour un niveau d'isolement unique et si vous souhaitez associer un nombre au nom du package pour indiquer son niveau d'isolement. La valeur par défaut est FALSE, ce qui signifie que l'indicateur numérique est attaché.
Utilisez cette option avec l'option -isolationLevel dans le fichier Default.bindProps.

Si vous souhaitez utiliser l'option -isolationLevel pour définir les accès d'un seul ensemble d'instructions en deux ou trois packages différents (chaque package à un autre niveau d'isolement), n'utilisez pas l'option -forceSingleBindIsolation lorsque vous exécutez l'utilitaire Configure sur le fichier pureQueryXML dans lequel apparaît l'ensemble d'instructions.

Par exemple, dans un fichier d'options pour l'utilitaire StaticBinder, supposez que vous avez inclus les deux entrées suivantes :

C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel UR
C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel CS

Si vous avez utilisé l'option -forceSingleBindIsolation lors de l'exécution de l'utilitaire Configure sur le fichier captureFile.pdqxml, l'utilitaire StaticBinder effectue les actions suivantes :

  1. Définition des accès du package MYPKGA au niveau d'isolement UR.
  2. Redéfinition des accès du package MYPKGA au niveau d'isolation CS.

Le résultat est un package MYPKGA unique dont les accès sont définis au niveau d'isolement CS.

Si vous voulez avoir deux packages MYPKGA comme résultat, un au niveau d'isolement UR et l'autre au niveau CS, n'utilisez pas l'option -forceSingleBindIsolation lors de l'exécution de l'utilitaire Configure sur captureFile.pdqxml.

-pkgVersion AUTO|ID_version
Indique la version du package à utiliser lorsque la définition d'accès est effectuée.

DB2 accepte la présence simultanée de plusieurs versions d'un même package, ce qui vous permet de définir les accès des nouveaux packages sans devoir remplacer les anciennes versions des packages portant un nom identique. Si vous rencontrez des difficultés avec une version récente d'un package, vous pouvez toujours utiliser une version plus ancienne de ce package.

L'utilitaire Configure crée une copie du fichier pureQueryXML en ajoutant l'ID version au nom de ce fichier.

AUTO
Indique que l'ID version doit être généré automatiquement en utilisant l'horodatage en cours. Un horodatage unique est utilisé pour l'ID version.
ID_version
Indique l'identificateur de version d'un package. La chaîne entrée doit être valide pour la version de DB2 que vous utilisez.

L'ID version ne doit inclure que des caractères valides pour les noms de fichier sur votre système d'exploitation. Par ailleurs, la chaîne et le nom du package ne peuvent pas dépasser la longueur acceptée par votre système d'exploitation pour les noms de fichier.

Si vous indiquez cette option et que l'utilitaire Configure ne modifie pas le fichier pureQueryXML, l'utilitaire ne crée pas de copie du fichier pureQueryXML.

Si vous n'indiquez pas cette option, les packages de base de données provenant de liaisons ultérieures sont créés sans version et la copie du fichier n'est pas créée.

La vérification de la version au moment de l'exécution est basée sur la marque de cohérence, et non pas sur le nom de la version.

-rootPkgName racine_nom_package
Indique la racine du nom à utiliser pour les packages DB2. Pour tout détail concernant la façon dont l'utilitaire Configure crée les noms des packages DB2, voir la description donnée pour sqlLimit.

La valeur racine_nom_package doit respecter les contraintes imposées par la base de données DB2 que vous utilisez.

Si vous prévoyez de générer des fichiers DBRM avec l'utilitaire pureQuery StaticBinder plutôt que de créer des packages DB2, vous devez utiliser des majuscules pour la valeur racine_nom_package et cette valeur ne doit pas comporter plus de 6 caractères. L'utilitaire Configure ajoute des caractères à la racine du nom soit lorsque le fichier pureQueryXml contient des instructions DDL, soit lorsque le nombre maximal d'instructions par package (défini avec sqlLimit) est atteint. Si vous utilisez l'utilitaire StaticBinder pour générer un fichier DBRM, cet utilitaire émet une exception dès lors que vous dépassez un total de 8 caractères pour la combinaison racine_nom_package / caractères supplémentaires consécutifs à l'intervention de l'utilitaire Configure / niveau d'isolement.

-replaceLocations "(nom_origine1>nouveau_nom1 ) ... (nom_origineN>nouveau_nomN )"
Indique le remplacement de noms d'emplacement existants de la base de données dans le fichier pureQuery par les nouveaux noms d'emplacement. Le nom existant est séparé du nouveau nom par un crochet droit (>). Chaque paire de noms d'emplacements est placée entre parenthèses. La liste de remplacement est placée entre des guillemets doubles ("). Ces derniers, utilisés pour délimiter un nom, doivent être précédés d'un caractère \. L'exemple d'option suivant remplace deux noms d'emplacement de bases de données :
-replaceLocations "(SAMPLE > SAMPLE1) (STLEC1 > STLEC2)"
L'exemple suivant utilise des guillemets doubles :
-replaceLocations "(\"test1\">\"prod1\")"

Le remplacement de nom est un processus exécuté en une seule fois. Par exemple, si vous indiquez la chaîne de remplacement "(S1>S2) (S2>S3)", les occurrences de S1 sont remplacées par S2 et les occurrences d'origine de S2 sont remplacées par S3. L'utilitaire Configure ne remplace pas S1 par S2 en une seule fois, puis il remplace S2 par S3 dans une autre opération. Pour obtenir des exemples de remplacement de nom, consultez l'exemple disponible à la fin de cette rubrique.

Cette option est uniquement prise en charge pour DB2 for z/OS Version 10 et DB2 for Linux, UNIX et Windows Version 9.8. L'utilitaire Configure n'empêche pas le remplacement d'un nom d'emplacement par d'autres versions des bases de données prises en charge. Il affiche un avertissement lorsque vous indiquez un fichier pureQueryXML utilisé avec des versions ultérieures de la base de données. En ce qui concerne les versions antérieures de la base de données, aucun avertissement n'est affiché. L'utilitaire Configure détermine la base de données et la version à partir des informations figurant dans le fichier pureQueryXML.

Avant d'utiliser l'utilitaire Configure avec l'option -replaceLocations, le fichier JAR pdqsqlparser.jar doit être ajouté à votre chemin d'accès aux classes. Le fichier JAR se trouve dans le répertoire d'installation lib/sqlparser de pureQuery Runtime.

La valeur de l'attribut configureStatus influe sur la manière dont l'utilitaire Configure traite les ensembles d'instructions concernés par l'option -replaceLocations.
  • Si la valeur de configureStatus affiche REQUIRED, les valeurs des noms sont rétablies sur celles spécifiées par l'option de remplacement. La marque de cohérence de l'ensemble des instructions est mise à jour.
  • Si la valeur de configureStatus affiche AUTO, les valeurs des noms sont rétablies sur celles spécifiées par les options de remplacement. La marque de cohérence de l'ensemble des instructions est mise à jour à condition qu'un nom soit remplacé.
  • Si la valeur de configureStatus affiche FINAL, les noms ne sont pas changés. L'utilitaire Configure imprime un message indiquant que l'utilitaire n'a pas changé l'emplacement de la base de données ou le nom d'un schéma pour une instruction SQL car la valeur de configureStatus affiche FINAL pour l'ensemble d'instructions contenant l'instruction.
La valeur des options -cleanConfigure et -setPreStatusOfAllPkgs affecte le remplacement des noms.
  • Si l'option -cleanConfigure est définie sur True, la valeur de l'option -setPreStatusOfAllPkgs est ignorée et le remplacement est effectué avec les valeurs des options -replaceLocations et -replaceSchemas,
  • Si l'option -cleanConfigure est définie sur False, le remplacement est effectué uniquement pour les ensembles d'instructions dont l'option configureStatus affiche les valeurs REQUIRED et AUTO. La définition de la valeur -setPreStatusOfAllPkgs sur FINAL va empêcher l'exécution du remplacement dans ces ensembles d'instructions nommés. Toutefois, les identificateurs de tous les ensembles d'instructions sans noms sont normalement remplacés.

Les valeurs des autres options n'ont aucun effet sur les options -replaceLocations et -replaceSchemas. Le remplacement des noms est effectué avant d'appliquer d'autres options, sauf -cleanConfigure et -setPreStatusOfAllPkgs.

-replaceSchemas "(nom_origine1>nouveau_nom1 ) ... (nom_origineN>nouveau_nomN )"
Indique le remplacement de noms de schéma existants dans le fichier pureQuery par les nouveaux noms de schéma. Le nom existant est séparé du nouveau nom par un crochet droit (>). Chaque paire de noms de schéma est placée entre parenthèses. La liste de remplacement est placée entre des guillemets doubles ("). Ces derniers, utilisés pour délimiter un nom, doivent être précédés d'un caractère \. L'exemple d'option suivant remplace deux noms de schéma :
-replaceSchemas "(MYSCH1 > MYSCH2) (MYSCH3 > MYSCH4)"
L'exemple suivant utilise des guillemets doubles :
-replaceSchemas "(\"schmTest\">\"schmProd\")"

Le remplacement de nom est un processus exécuté en une seule fois. Par exemple, si vous indiquez la chaîne de remplacement "(S1>S2) (S2>S3)", les occurrences de S1 sont remplacées par S2 et les occurrences d'origine de S2 sont remplacées par S3. L'utilitaire Configure ne remplace pas S1 par S2 en une seule fois, puis il remplace S2 par S3 dans une autre opération. Pour obtenir des exemples de remplacement de nom, consultez l'exemple disponible à la fin de cette rubrique.

Cette option est uniquement prise en charge pour DB2 for z/OS Version 10 et DB2 for Linux, UNIX et Windows Version 9.8. L'utilitaire Configure n'empêche pas le remplacement d'un nom de schéma par d'autres versions des bases de données prises en charge. Il affiche un avertissement lorsque vous indiquez un fichier pureQueryXML utilisé avec des versions ultérieures de la base de données. En ce qui concerne les versions antérieures de la base de données, aucun avertissement n'est affiché. L'utilitaire Configure détermine la base de données et la version à partir des informations figurant dans le fichier pureQueryXML.

Avant d'utiliser l'utilitaire Configure avec l'option -replaceSchemas, le fichier JAR pdqsqlparser.jar doit être ajouté à votre chemin d'accès aux classes. Le fichier JAR se trouve dans le répertoire d'installation lib/sqlparser de pureQuery Runtime.

Pour plus d'informations sur les effets de la valeur de l'attribut configureStatus et les options -cleanConfigure et -setPreStatusOfAllPkgs, reportez-vous à l'option -replaceLocations.

-sqlLimit nombre
Indique le nombre maximal d'instructions SQL autorisées dans le package DB2. En règle générale, si le nombre d'instructions SQL dépasse cette limite, l'utilitaire pureQuery StaticBinder lie un autre package dans lequel viennent se placer les instructions excédentaires. Dans certains cas toutefois, le nombre d'instructions SQL que l'utilitaire StaticBinder place dans un package est légèrement supérieur à la limite.

Cette valeur par défaut est 100.

Par exemple, supposons que vous vouliez lier quatre packages (un package pour chacun des quatre niveaux d'isolement) avec le nom racine monPackage et que la base de données prenne en charge les noms de package longs. Si le fichier pureQueryXML que vous utilisez contient entre 101 et 199 instructions et si vous conservez la valeur par défaut de sqlLimit, l'opération de définition d'accès va générer les packages suivants :
Tableau 1. Tableau des packages
  Package avec les 100 premières instructions SQL Package avec les n instructions SQL suivantes, où 100 < n < 200
Niveau d'isolement CS monPackageA1 monPackageB1
Niveau d'isolement RR monPackageA2 monPackageB2
Niveau d'isolement RS monPackageA3 monPackageB3
Niveau d'isolement UR monPackageA4 monPackageB4

Les chiffres représentent le niveau d'isolement des packages, cependant que les lettres représentent le nombre de packages créés selon la valeur de sqlLimit et le nombre d'instructions présentes dans le fichier pureQueryXML. Les lettres sont celles de l'alphabet anglais, de A à Z. Si la lettre Z est atteinte alors qu'il reste des packages à créer, une deuxième lettre est ajoutée à la première, ce qui donne AA, AB, AC, etc. Si les noms deviennent trop longs pour votre base de données, réduisez la longueur du nom racine du package ou augmentez la valeur de sqlLimit. Vous pouvez également utiliser l'option -forceSingleBindIsolation pour supprimer le nombre indiquant le niveau d'isolement, si vous prévoyez de créer un package pour un niveau d'isolement unique.

Dans certaines situations, l'utilitaire Configure dépasse la limite de l'instruction SQL lors de la création d'ensembles d'instructions représentant les packages DB2. Toutes les instructions SQL qui manipulent un curseur doivent se trouver dans le package contenant l'instruction DECLARE CURSOR pour ce curseur. Par exemple, si une application exécute quinze instructions UPDATE différentes qui se réfèrent au même curseur, ces quinze instructions doivent toutes se trouver dans le package DB2 contenant l'instruction DECLARE CURSOR pour ce curseur.

Pour que votre application maintienne des performances optimales, n'indiquez pas de valeur supérieure à 400 pour sqlLimit.

Options de trace
Vous pouvez demander à ce que le fichier journalise les messages et préciser le niveau d'information à journaliser.
Lire le diagrammeSauter le diagramme
>>-+--------------------------+--------------------------------->
   '- -traceFile--nom_fichier-'   

>--+---------------------------+-------------------------------><
   |               .-OFF-----. |   
   '- -traceLevel--+-ALL-----+-'   
                   +-SEVERE--+     
                   +-WARNING-+     
                   +-INFO----+     
                   +-CONFIG--+     
                   +-FINE----+     
                   +-FINER---+     
                   '-FINEST--'     

-traceFile nom_fichier
Indique le chemin absolu ou relatif ainsi que le nom du fichier à utiliser pour la journalisation des informations relatives à l'opération.
Si le fichier existe déjà, pureQuery ajoute les nouveaux messages à la suite des messages déjà placés dans ce fichier. Par défaut, les entrées sont écrites dans System.err.
-traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
Indique le type d'informations à journaliser. Le niveau par défaut est OFF. Si vous n'indiquez pas de fichier pour l'écriture des entrées de journal et si vous sélectionnez toute valeur autre que OFF pour cette option, les entrées sont écrites dans la vue Console.

Commentaires