Limites liées à l'utilisation de l'optimisation client pureQuery avec les applications CLI

Des limites sont appliquées lorsqu'une application CLI est activée avec l'optimisation client pureQuery.

Les limites suivantes sont appliquées lors de l'utilisation de l'optimisation client pureQuery avec une application CLI.

Prise en charge des instructions VALUES dynamiques et des instructions VALUES statiques
Certaines instructions VALUES qui sont prises en charge au cours de l'exécution SQL dynamique ne peuvent pas être exécutées avec l'exécution SQL statique. Pour corriger ce problème, une instruction VALUE telle que VALUES ( CURRENT TIME, CURRENT_TEMPERATURE()... ) peut être réécrite comme SELECT CURRENT TIME, CURRENT_TEMPERATURE()... FROM SYSIBM.SYSDUMMY1.
Une exécution d'instructions SQL dynamiques avec une exécution statique doit utiliser la fonction XMLQUERY
Les instructions XQuery dynamiques doivent être encapsulées dans la fonction SQL scalaire DB2 XMLQUERY pour être exécutée avec une exécution statique. Pour plus d'informations sur l'utilisation des instructions XQuery avec XMLQUERY, reportez-vous à la fonction DB2 XMLQUERY.

Si vous n'utilisez pas la fonction XMLQUERY pour exécuter les instructions XQuery en mode statique, vous devez définir la valeur du mot clé allowDynamicSQL dans le fichier db2cli.ini ou db2dsdriver.cfg sur TRUE, ou supprimer le mot clé pour utiliser la valeur par défaut de TRUE.

Les propriétés pureQuery Runtime ne peuvent pas être modifiées au cours d'une connexion active à la base de données
Une fois qu'une connexion est établie avec une base de données, les propriétés pureQuery Runtime spécifiées dans un fichier de propriétés ne peuvent plus être modifiées. Pour modifier les propriétés pureQuery, vous devez vous déconnecter de la base de données, mettre à jour le fichier de propriétés ou la chaîne de connexion, puis vous reconnecter.
Prise en charge des fichiers pureQueryXML par les applications CLI
Les applications CLI activées avec l'optimisation client pureQuery prennent en charge les fichiers pureQueryXML de version 3. Certaines fonctions pureQuery génèrent ou utilisent des fichiers pureQueryXML de version 4 qui ne sont pas compatibles avec les fichiers pureQueryXML de version 3. Les applications CLI renvoient une erreur si un fichier de version 4 est utilisé. Les fonctionnalités pureQuery suivantes génèrent ou utilisent des fichiers pureQueryXML de version 4 :
  • L'utilitaire pureQuery GeneratePureQueryXml génère des fichiers pureQueryXML de version 4.
  • Pour l'utilitaire pureQuery Configure, les options -groupSQLBySpecialRegisters et -removeSQLInactiveForDays requièrent des informations qui figurent seulement dans les fichiers pureQueryXML de version 4.
La modification d'un fichier pureQueryXML risque de provoquer un comportement inattendu
La modification du fichier à la main pourrait provoquer un comportement inattendu ou créer un fichier pureQueryXML non valide. Les seules modifications recommandées concernent le réglage sélectif des requêtes à l'aide de la fonctionnalité de remplacement de requête réglée de pureQuery Runtime.
Les marqueurs de paramètre nommés sont remplacés par "?" marqueurs de paramètre
Les marqueurs de paramètre nommés dans les instructions SQL ont été introduits dans DB2 Version 9.7. pureQuery Runtime ne prend pas en charge les marqueurs de paramètre nommés. Les marqueurs de paramètre nommés sont remplacés par "?" autonomes.
Les modifications apportées au fichier pureQueryXML qui sont effectuées pendant qu'une application est en cours d'exécution ne sont pas reconnues par pureQuery Runtime
Lorsqu'une application activée avec l'optimisation client pureQuery démarre, les informations figurant dans le fichier pureQueryXML utilisé par l'application sont mises en mémoire cache. Pour recharger le fichier pureQueryXML, l'application doit être redémarrée.
Lorsque des applications CLI activées avec l'optimisation client pureQuery capturent simultanément des données SQL, chaque application doit spécifier un fichier pureQueryXML différent.
Lors de l'exécution simultanée d'applications CLI et lorsque les applications capturent des données SQL (la valeur du mot clé pureQuery captureMode est définie sur ON), chaque application qui capture des données SQL doit spécifier un fichier pureQueryXML différent. Le fichier spécifié par la valeur du mot clé pureQueryXml doit être différent. Si vous souhaitez utiliser le même fichier pureQueryXML, l'application ne peut pas s'exécuter de simultanément. Les applications simultanées utilisant le même fichier de capture pureQueryXML risquent de corrompre le fichier pureQueryXML.

Vous pouvez utiliser l'utilitaire Merge Java pureQuery pour associer plusieurs fichiers pureQueryXML dans un seul fichier.

Lors de la capture de données SQL ou de l'exécution statique d'instructions SQL, la préparation CLI différée est désactivée.
Si la valeur du paramètre du mot clé pureQuery est captureMode=ON, ou si le paramètre executionMode=STATIC, la préparation CLI différée est désactivée.
L'exécution statique d'instructions SQL et la capture simultanée d'instructions SQL ne sont pas prises en charge.
La définition des options captureMode=ON et executionMode=STATIC simultanément sur la même connexion n'est pas prise en charge.
pureQuery Runtime ne capture pas les instructions positionnées UPDATE ou DELETE
Pour une application activée avec l'optimisation client pureQuery, pureQuery Runtime ne capture pas les instructions positionnées UPDATE ou DELETE. Par exemple, une instruction UPDATE utilisant la clause WHERE CURRENT OF. Ces instructions SQL sont exécutées en mode dynamique avec le mot clé executionMode=STATIC lorsque le mot clé allowDynamicSQL=TRUE est défini.
pureQuery Runtime limite statementType SET_METHOD lorsque le mot clé capturedOnly=TRUE est défini
Lorsque le mot clé capturedOnly=TRUE est défini, les instructions avec statementType SET_METHOD sont limitées par pureQuery Runtime si l'instruction n'est pas dans le fichier pureQueryXML.
Les changements apportés aux paramètres de registre spécial DB2 lors de l'exécution d'instructions SQL peuvent provoquer un comportement différent de l'application par rapport aux mêmes instructions exécutées en mode statique.
Pour les bases de données DB2, le changement des valeurs de registre spécial peut modifier le comportement de l'application. L'exemple suivant utilise le registre spécial CURRENT DECFLOAT ROUNDING MODE et suppose que la valeur est définie sur ROUND_CEILING lorsqu'une instruction SQL est capturée. Si vous liez les instructions SQL dans le fichier pureQueryXML et exécutez l'application de telle manière que les instructions SQL sont exécutées en mode statique (le mot clé executionMode=STATIC est défini) avec la valeur de registre spécial définie sur ROUND_FLOOR, les données renvoyées peuvent être différentes si les données sont dépendantes de la valeur du registre spécial. Les résultats peuvent être différents même si aucun changement n'a été apporté au code d'application.
Limitations lors de la création et de la gestion d'un référentiel
Pour créer et gérer un référentiel, utilisez l'utilitaire ManageRepository pureQuery Java.

Une application CLI activée avec l'optimisation client pureQuery peut uniquement extraire les données du fichier pureQueryXML à partir d'un référentiel. L'extraction des informations de configuration de pureQuery Runtime ne sont pas prises en charge.

Une application CLI activée avec l'optimisation client pureQuery ne peut pas mettre à jour les données pureQueryXML stockées dans un référentiel.

Si vous spécifiez le mot clé Capturemode avec la valeur ON pour capturer des données SQL, vous ne pouvez pas spécifier de référentiel et de groupe d'exécution avec les mots clés pureQueryXmlRepository et propertiesGroupId.

Le mot clé pureQueryXml ne peut pas être spécifié si les mots clés pureQueryXmlRepository et propertiesGroupId sont spécifiés.

Lorsque la valeur du mot clé repositoryRequired est définie sur atStartup et que pureQuery Runtime ne peut pas extraire le fichier pureQueryXML à partir du référentiel, pureQuery Runtime génère une erreur.


Commentaires