Scénario : Définition des propriétés de source de données personnalisées dans WebSphere Application Server

Vous définissez les propriétés d'exécution pureQuery au niveau de la source de données. Les propriétés de l'exécution pureQuery récupérées à partir du répertoire sont également définies au niveau de la source de données. Une fois que vous avez redémarré l'application, l'exécution pureQuery capture les instructions SQL renvoyées par l'application.

Avant de commencer

Vérifiez que WebSphere Application Server exécute une application dynamique. L'application utilise une source de données avec le nom JNDI jdbc/nobleDS disponible pour le fournisseur DB2.

Pourquoi et quand exécuter cette tâche

Vous créez des propriétés personnalisées du fournisseur JDBC WebSphere pour la source de données. Les propriétés sont utilisées par l'exécution pureQuery et IBM® Data Server Driver for JDBC and SQLJ.

La propriété personnalisée pdqProperties pour l'exécution pureQuery pointe vers le référentiel que vous avez créé dans la tâche, Scénario : Création et configuration d'un référentiel pour l'exécution pureQuery. La propriété dataSourceName pour le pilote DB2 spécifie la base de données de transactions en tant que source de données. Le tableau suivant répertorie les propriétés WebSphere et leurs valeurs :
Tableau 1. Propriétés personnalisées WebSphere
Nom de propriété de source de données personnalisée WebSphere Valeur
pdqProperties finalRepositoryProperties(ds://jdbc/nobleDS), propertiesGroupId(testApp), repositoryRequired(atStartup), propertiesRefreshInterval(2)
dataSourceName nobleDS

Lorsque vous indiquez les propriétés de source de données personnalisées pdqProperties et dataSourceName, vous indiquez les propriétés pureQuery Runtime pour la source de données.

Remarque : Si vous définissez les propriétés pureQuery Runtime pour la source de données avec la chaîne pdqProperties, celles-ci remplacent la propriété de source de données personnalisée dataSourceName.

Procédure

Pour définir les propriétés de source de données personnalisées sur un serveur WebSphere Application Server :

  1. Définissez la propriété de source de données personnalisée pdqProperties sur la source de données.

    Dans la console d'administration, accédez à la fenêtre Propriétés personnalisées.

    Fournisseurs JDBC > DB2 Universal JDBC Driver Provider > Sources de données > DB2 Universal JDBC Driver DataSource > Propriétés personnalisées.

    Créez une propriété appelée pdqProperties.

    Pour spécifier la propriété personnalisée des propriétés d'exécution pureQuery, définissez les valeurs suivantes :
    finalRepositoryProperties(ds://jdbc/nobleDS),
    propertiesGroupId(testApp), repositoryRequired(atStartup), propertiesRefreshInterval(2)
    La propriété personnalisée WebSphere spécifie les propriétés d'exécution pureQuery suivantes :
    finalRepositoryProperties
    Cette valeur spécifie l'emplacement du référentiel qui stocke les propriétés d'exécution pureQuery qui sont utilisées par l'application. Dans ce scénario, la valeur est la source de données ds://jdbc/nobleDS. La base de données de référentiel est identique à la base de données de transactions.
    propertiesGroupId
    Cette valeur spécifie l'ID de groupe d'exécution qui stocke les propriétés d'exécution de pureQuery et les données pureQueryXML de l'application. La valeur de propertiesGroupId doit être un ID de groupe d'exécution défini dans le référentiel spécifié dans une base de données. Dans le scénario, le référentiel se trouve dans la base de données spécifiée par la source de données jdbc/nobleDS. La valeur de l'option propertiesGroupId est l'ID du groupe d'exécution que vous avez créé à la rubrique Scénario : Création et configuration d'un référentiel pour l'exécution pureQuery.
    repositoryRequired
    Cette valeur spécifie le comportement de l'exécution pureQuery si le référentiel n'est pas disponible. Dans le scénario, la valeur est atStartup. Lors du démarrage de l'application, le référentiel doit lire les propriétés de l'exécution pureQuery et les données pureQueryXML à partir du référentiel. Si le référentiel n'est pas disponible ou que des erreurs de lecture sont détectées, une exception est envoyée à l'application. Les valeurs suivantes sont les autres valeurs autorisées pour la propriété repositoryRequired :
    • La valeur forOutput spécifie qu'une exception est envoyée à l'application si le référentiel qui stocke les données SQL capturées n'est pas disponible lorsque l'exécution pureQuery tente d'écrire dans le référentiel pour la première fois.
    • La valeur atStartupAndForOutput spécifie que le comportement de l'exécution pureQuery pour atStartup et forOutput est activé.

    Si la propriété repositoryRequired n'est pas spécifiée et que l'emplacement défini par l'option finalRepositoryProperties n'est pas disponible, l'exécution pureQuery exécute les instructions SQL de façon dynamique jusqu'à ce que le référentiel devienne disponible.

    Conseil : Si l'application doit exécuter des instructions SQL de façon statique ou avec différentes substitutions SQL, vous devriez alors spécifier la propriété repositoryRequired avec la valeur atStartup ou atStartupAndForOutput.
    propertiesRefreshInterval
    Cette valeur spécifie l'intervalle d'attente, en minutes, entre chaque vérification de mise à jour des propriétés d'exécution pureQuery ou des données pureQueryXML qui sont stockées à l'emplacement spécifié par la propriété finalRepositoryProperties. L'exécution pureQuery ne recherche les mises à jour des propriétés que si la propriété propertiesRefreshInterval fait partie des propriétés récupérées et que sa valeur est un entier positif.
    Remarque : Vous pouvez modifier l'intervalle de régénération une fois que l'exécution pureQuery a récupéré les propriétés. Vous pouvez définir la propriété propertiesRefreshInterval comme une propriété utilisée lors du démarrage de l'application. Vous pouvez également la définir comme une propriété récupérée depuis l'emplacement spécifié par la propriété finalRepositoryProperties.

    Si le référentiel n'est pas indispensable au démarrage, vous pouvez indiquer différents intervalles de rafraîchissement en fonction de la disponibilité du référentiel. L'intervalle de rafraîchissement indiqué par l'application s'applique jusqu'à ce que le référentiel soit disponible. Dès que le référentiel est disponible, le système applique l'intervalle de rafraîchissement extrait de l'emplacement indiqué par la propriété finalRepositoryProperties.

  2. Définissez la propriété de source de données personnalisée WebSphere dataSourceName.

    Dans le panneau Propriétés personnalisées, créez une propriété personnalisée DB2 Universal JDBC dataSourceName. Définissez la valeur par une chaîne appropriée identifiant la source de données. Dans le scénario, la valeur est définie par nobleDS.

  3. Redémarrez WebSphere Application Server.

    Le serveur d'applications redémarre en tenant compte des modifications apportées à la variable CLASSPATH du fournisseur et à la source de données qui sont spécifiées par les propriétés personnalisées.

Résultats

Lorsque la propriété personnalisée du fournisseur JDBC WebSphere pdqProperties est reconnue par WebSphere pour la source de données, toutes les connexions créées à partir de cette source de données sont activées avec l'optimisation client pureQuery. La propriété d'exécution de pureQuery finalRepositoryProperties spécifie l'emplacement du référentiel dans lequel les propriétés de l'exécution pureQuery sont stockées. La propriété de l'exécution pureQuery propertiesGroupId indique le groupe d'exécution dans le référentiel.

Etant donné que les propriétés pureQuery et la propriété propertiesRefreshInterval sont récupérées à partir du référentiel, vous pouvez mettre à jour les informations de configuration pureQuery, les propriétés pureQuery ainsi que les données pureQueryXML sans redémarrer le serveur d'applications. L'application recherchera les mises à jour des informations et récupérera et utilisera les informations mises à jour.

Conseil : Si plusieurs applications partagent la source de données, vous pouvez remplacer les propriétés de l'exécution pureQuery au niveau de l'application.

Que faire ensuite

Dans la tâche suivante, vous lancerez l'application WebSphere afin d'exécuter des instructions SQL. L'exécution pureQuery capture les instructions SQL et les données SQL associées et stocke les données dans le référentiel.


Commentaires