Cette rubrique contient les sections suivantes :
Vous pouvez fusionner les fichiers pureQueryXML de deux façons.
Si vous êtes dans l'obligation d'éditer un fichier pureQueryXML en dehors du plan de travail, dans la balise <statementSet> de l'ensemble d'instructions à modifier, définissez la valeur de l'attribut configureStatus sur REQUIRED, comme suit : configureStatus="REQUIRED". Puis, exécutez l'utilitaire Configure sur le fichier.
Pour les applications Java, exécutez l'utilitaire Configure sur capture.pdqxml pour que l'utilitaire puisse nommer les ensembles d'instructions. Ensuite, vous donnez une copie de ce fichier aux autres membres de votre équipe pour leur permettre de capturer les instructions de manière incrémentielle à partir d'autres chemins logiques de la même application. Chaque membre utilise sa copie comme fichier d'entrée, en le spécifiant comme valeur de la propriété pureQueryXml. Chaque membre attribue le nom du fichier contenant les instructions SQL supplémentaires qu'il capture à la propriété outputPureQueryXml. Ces membres de l'équipe vous donnent leurs fichiers de sortie, sur lesquels vous exécutez l'utilitaire Merge afin de créer un fichier contenant les instructions SQL provenant des fichiers ayant participé à la fusion. Si vous ouvrez le nouveau fichier, vous pouvez constater qu'il contient toujours les ensembles d'instructions qui se trouvaient dans le fichier de base. Les instructions SQL provenant des fichiers de sortie que les membres de votre équipe vous ont donnés se trouvent dans un nouvel ensemble d'instructions sans nom placé à la fin du nouveau fichier.
Dans le fichier issu de la fusion, l'utilitaire Merge combine les instructions SQL provenant de tous les fichiers pureQueryXML en un seul ensemble d'instructions sans nom.
(1) >>-------java com.ibm.pdq.tools.Merge---------------------------> >--+---------------------+--------------------------------------> '- -baseFile--fichier-' .---------. V | >--+- -inputPureQueryXml----fichier-+--+------------------------> '- -inputPureQueryXmlGroup--fichier-' >-- -outputPureQueryXml--fichier--------------------------------> >--+--------------------------+--+--------------------------+---> | (2) | | .-FALSE-. | '-| Options de trace |-----' '- -showDetails--+-TRUE--+-' >--+---------------------------------------+--------------------> '- -removeSQLInactiveForDays----jours---' >--+--------------------------+--+--------+-------------------->< | .-FALSE-. | '- -help-' '- -validateXml--+-TRUE--+-'
Pour comprendre les conventions utilisées dans le diagramme, voir Lecture des diagrammes de syntaxe.
Si une instruction SQL de l'un des fichiers que vous fusionnez procède à des mises à jour positionnées, et que l'instruction qui déclare le curseur de ce type de mise à jour ne se trouve pas dans le même fichier, l'utilitaire Merge recherche la déclaration du curseur dans les fichiers que vous fusionnez.
Par exemple, supposons que vous ayez capturé des instructions SQL issues d'une application Web mise en cluster, puis généré les trois fichiers pureQueryXML A, B et C. Vous utilisez le fichier C comme fichier de base pour le processus de fusion. Le fichier A contient l'instruction SQL S1, qui procède à une mise à jour positionnée. Toutefois, le fichier A ne contient pas d'instruction SQL S2, qui déclare le curseur qu'utilise S1. Par conséquent, l'utilitaire Merge recherche dans les fichiers B et C une instruction SQL qui déclare ce curseur. Si le fichier B ou C ne contient pas ce type d'instruction, l'utilitaire Merge ne fusionne pas l'instruction de mise à jour positionnée S1 et consigne un avertissement.
Si vous ne spécifiez pas de fichier de base, dans le fichier issu de la fusion, l'utilitaire Merge combine les instructions SQL provenant de tous les fichiers pureQueryXML en un seul ensemble d'instructions sans nom.
Si le chemin ou le nom d'un fichier contient un espace, placez l'entrée du fichier entre guillemets.
Pour spécifier plusieurs fichiers, le nom de fichier peut contenir le caractère générique *.
Par exemple, si la variable jours est définie sur 5 et que nous sommes le 25 novembre, les instructions SQL datées du 20 novembre et antérieures au 20 novembre ne sont pas écrites.
Si l'instruction SQL n'est pas horodatée, elle est écrite dans le fichier de sortie et horodatée selon l'heure et la date du jour. Par exemple, si une version antérieure d'un fichier pureQueryXML n'est autre qu'un fichier en entrée, l'instruction SQL n'est pas horodatée. En cas de version précédente d'un fichier pureQueryXML (version 3 ou antérieure), l'option est ignorée, toutes les instructions SQL sont écrites dans le fichier de sortie avec l'heure et la date du jour et un message s'affiche.
Si le statut de l'ensemble d'instructions est défini sur FINAL, les instructions remplissant les critères en termes de nombre de jours d'inactivité sont écrites dans le fichier de sortie pureQueryXML et l'utilitaire Merge consigne un message dans le fichier journal concernant l'instruction et la raison pour laquelle elle est conservée.
Un message est consigné dans le fichier journal pour les instructions SQL qui ne sont pas écrites dans le fichier de sortie pureQueryXML. Si l'option -showDetails est définie sur true, toutes les instructions non écrites dans le fichier de sortie s'affichent.
>>-+--------------------------+---------------------------------> '- -traceFile--nom_fichier-' >--+---------------------------+------------------------------->< | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
En cas d'échec de la validation de schéma par un fichier pureQueryXML, la fusion échoue. Le nom de fichier et l'erreur à l'origine de l'échec de la validation de schéma sont indiqués. Les fichiers suivants ne peuvent pas être validés. La première erreur de validation est rapportée, ainsi que l'échec de la fusion.
Seule l'édition actuelle ou la version précédente des fichiers pureQueryXML est validée (version 4 ou 3). En cas de détection d'une version antérieure du fichier pureQueryXML, la validation n'est pas appliquée à ce fichier.
L'attribut n'est pas remplacé si la valeur dans STMT_A est déjà vraie ou si la valeur dans STMT_B est fausse ou vide ("").
Si un nom de curseur défini par l'utilisateur se trouve dans un autre fichier en entrée ultérieur dans le processus de fusion, il est ignoré.
De plus, si deux instructions de fichiers pureQueryXML différents sont identiques à tous égards, sauf leurs entrées de trace de pile, les entrées de trace de pile différentes sont combinées pour l'instruction unique qui en résulte dans le fichier issu de la fusion.
Dans le fichier fusionné, l'utilitaire Merge définit la valeur de l'attribut sqlLiteralSubstitution (DISABLE ou ENABLE) sur la valeur définie dans le dernier fichier en entrée.
Si la valeur de l'attribut XML sqlLiteralSubstitution est définie sur DISABLE dans un ou plusieurs fichiers en entrée et sur ENABLE dans d'autres fichiers en entrée, l'utilitaire affiche un message d'avertissement.