Si plusieurs applications Web partagent une source de données, vous pouvez définir des
propriétés spécifiques à chaque application.
Pourquoi et quand exécuter cette tâche
Lorsque vous définissez des propriétés spécifiques à l'application, la modification des propriétés et
la capture des instructions SQL d'une application n'interrompt pas les autres applications
partageant une source de données. Vous pouvez également réaliser ces actions simultanément sur au moins deux de ces
applications sans que l'une de ces actions ne gêne les autres, sauf si une ou plusieurs des applications reposent
sur la mise en cache de l'instruction par le serveur d'applications.
En effet, si vous modifiez les
propriétés spécifiques à une application, il n'est pas utile de redémarrer le serveur qui exécute toutes les
applications. Vous pouvez simplement redémarrer une application.
Toutefois,
si vous modifiez des propriétés se trouvant dans un fichier pdq.properties ou définies sur un objet
DataSource, vous devez redémarrer le serveur d'applications. Les propriétés que vous définissez dans ces
emplacements sont celles qui déterminent la manière dont pureQuery consigne les messages d'erreur. Voir
Définition des propriétés de capture et d'exécution des ensembles restreints d'instructions SQL en mode dynamique
pour obtenir des informations relatives à la définition des propriétés dans ces emplacements.
Procédure
- Si une application utilise plusieurs sources de données et différents ensembles de
propriétés pour chacune d'elles, procédez comme suit :
- Dans le serveur Web que vous utilisez, attribuez une valeur à la propriété dataSourceName de chaque source
de données.
- Pour chaque source de données, définissez pdqProperties comme propriété personnalisée en utilisant
ces valeurs :
- Nom
- pdqProperties
- Valeur
- executionMode(Dynamic)
- Type
- java.lang.String
Vous devez redémarrer le serveur pour que cette propriété prenne effet.
- Pour chaque source de données, créez un fichier nommé
pdq.dataSourceName.properties. Voir Définition globale des propriétés pour capturer et exécuter de façon dynamique des ensembles restreints d'instructions SQL
pour obtenir des instructions sur l'emplacement de ces fichiers.
Dans chaque fichier, créez les entrées suivantes :
pdq.captureMode=ON
pdq.pureQueryXml=nom_fichier.extension
Pour plus d'informations relatives aux propriétés requises, voir
captureMode et
Propriété pureQueryXml. Le nom
de fichier que vous définissez avec la propriété pureQueryXml doit être
unique parmi les fichiers pureQueryXML pour toutes les applications partageant une source de données.
A la place de la propriété pureQueryXml, vous pouvez utiliser la propriété
outputPureQueryXml.
- Facultatif : Dans chaque fichier, définissez d'autres propriétés qui déterminent la manière dont
pureQuery capture les instructions SQL.
Voici la liste de ces propriétés :
- Exécutez l'application et les instructions SQL que vous souhaitez capturer.
pureQuery crée un fichier dans chaque emplacement que vous avez spécifié avec la propriété pureQueryXml
dans les fichiers pdq.dataSourceName.properties.
- Si une application utilise une seule source de données, procédez comme suit :
- Créez un fichier nommé pdq.appwide.properties. Voir Définition globale des propriétés pour capturer et exécuter de façon dynamique des ensembles restreints d'instructions SQL
pour obtenir des instructions sur l'emplacement de ces fichiers.
Dans chaque fichier, créez les entrées suivantes :
pdq.captureMode=ON
pdq.pureQueryXml=nom_fichier.extension
Pour plus d'informations relatives à ces propriétés obligatoires, voir
Propriété captureMode et
Propriété pureQueryXml.
Le nom
de fichier que vous définissez avec la propriété pureQueryXml doit être
unique parmi les fichiers pureQueryXML pour toutes les applications partageant une source de données.
A la place de la propriété pureQueryXml, vous pouvez utiliser la propriété
outputPureQueryXml.
- Facultatif : Définissez les autres propriétés déterminant la manière dont pureQuery capture les instructions SQL.
Voici la liste de ces propriétés :
- Exécutez l'application et les instructions SQL que vous souhaitez capturer.
pureQuery crée un fichier dans l'emplacement que vous avez spécifié avec la propriété pureQueryXml
dans le fichier pdq.appwide.properties.
Exemple
Soit deux applications Web, Application1 et Application2, s'exécutant sous
WebSphere Application Server. Vous souhaitez les configurer
de manière à exécuter les instructions SQL des fichiers pureQueryXML de manière dynamique.
Application1 utilise 2 sources de données : OrdersDS et ItemsDS. Application2 utilise également l'une
de ces sources de données : OrdersDS.
La procédure ci-dessous explique comment procéder à une seule
configuration.
Pour configurer et exécuter Application1, suivez la procédure ci-dessous :
- Dans WebSphere Application Server, définissez le serveur
IBM® Data Server Driver personnalisé pour la source de données de
la JDBC et SQLJ pour chacune des deux sources de données.
- Créez un fichier de propriétés pour chaque source de données : pdq.ItemsDS.properties
et pdq.OrdersDS.properties.
- Définissez les propriétés requises dans chacun des fichiers de propriétés.
Pour pdq.ItemsDS.properties,
vous pouvez utiliser les paramètres suivants :
pdq.captureMode=ON
pdq.pureQueryXml=App1Items.pdqxml
Pour pdq.OrdersDS.properties,
vous pouvez utiliser les paramètres suivants :
pdq.captureMode=ON
pdq.pureQueryXml=App1Orders.pdqxml
Les noms de fichiers pureQueryXML peuvent
suivre la convention de votre choix, tant que leur extension est .pdqxml ou .xml.
- Capturez les instructions SQL.
- Dans les deux fichiers de propriétés, attribuez la valeur OFF à
captureMode.
- Si vous utilisez le cache d'instruction du serveur d'applications, purgez les pools de
connexions des deux sources de données.
- Redémarrez Application1.
Pour configurer et exécuter Application2,
vous pouvez procéder comme suit :
- Créez le fichier de propriétés pdq.OrdersDS.properties.
- Définissez les propriétés requises dans chacun des fichiers de propriétés.
pdq.captureMode=ON
pdq.pureQueryXml=App2Orders.pdqxml
De nouveau, le nom du fichier pureQueryXML
peut suivre la convention de votre choix. Toutefois, l'extension doit être .pdqxml ou .xml.
- Capturez les instructions SQL.
- Dans le fichier pdq.OrdersDS.properties, attribuez la valeur OFF à captureMode.
- Si vous utilisez le cache d'instruction du serveur d'applications, purgez le pool
de connexions de la source de données.
- Redémarrez Application2.