Le plan de travail propose des fonctions qui vous permettent d'exécuter la
commande wsdb2gen pour la création de fichiers pureQueryXML, de définir les accès des
instructions SQL et d'exécuter ces instructions en mode statique lors de l'exécution
de votre application JPA.
Avant de commencer
Vérifiez que votre système est conforme aux exigences de configuration logicielle et matérielle. Voir Configuration requise pour Optim pureQuery Runtime.
L'application doit exister dans un projet JPA du plan de travail. Vous pouvez soit importer l'application dans un projet JPA, soit en développer un dans
le plan de travail. Si vous souhaitez développer un projet, reportez-vous au guide
d'utilisation des outils Eclipse Dali JPA à l'adresse suivante : http://www.eclipse.org/webtools/dali/.
Pour le guide d'utilisation d'Apache OpenJPA, reportez-vous à la page "OpenJPA Documentation"
à l'adresse suivante : http://openjpa.apache.org/documentation.html.
Avant toute définition d'accès, assurez-vous
que les conditions ci-après sont réunies.
- L'ensemble de privilèges de l'utilisateur qui appelle l'utilitaire pureQuery StaticBinder doit inclure l'un des droits suivants :
- Le droit SYSADM
- Le droit DBADM
- Si le module n'existe pas, le privilège BINDADD ainsi que l'un des privilèges suivants :
- Le privilège CREATEIN
- DB2 for z/OS :
le droit PACKADM pour la collection ou pour toutes les collections
- DB2 Database for Linux, UNIX, and Windows :
le droit IMPLICIT_SCHEMA pour la base de données si le nom de schéma du module n'existe pas
- DB2 for z/OS :
si le module existe, le privilège BIND pour ce module
- DB2 Database for Linux, UNIX, and Windows :
si le module existe :
- Le privilège ALTERIN pour le schéma
- Le privilège BIND pour le module
- DB2 for Linux,
UNIX, and Windows :
l'utilisateur doit également disposer de tous les privilèges nécessaires pour compiler les
instructions SQL statiques de l'application. Les privilèges accordés aux groupes ne permettent
pas de vérifier les autorisations pour les instructions statiques.
Si l'utilisateur dispose
du droit SYSADM mais sans privilèges explicites pour la définition des accès, le gestionnaire
de la base de données DB2 accorde automatiquement un
droit DBADM explicite.
Pourquoi et quand exécuter cette tâche
Les différentes étapes de cette tâche détaillent l'étape 4 des rubriques
suivantes de la documentation des serveurs d'applications WebSphere 7.0 :
Procédure
Pour configurer l'exécution en mode statique des
instructions SQL dans les applications JPA qui utilisent le serveur d'applications
Websphere Application Server 7.0 :
- Activez le support pureQuery dans votre projet JPA. Vous devez configurer les projets JPA pour la prise en charge de pureQuery.
- Cliquez sur votre projet JPA avec le bouton droit de la souris puis sélectionnez
Ajouter le support pureQuery. Suivez la procédure de l'assistant Ajout du support pureQuery. Pour obtenir des informations sur les différentes commandes de l'assistant,
cliquez sur
dans l'angle inférieur gauche de cet assistant. Si l'aide ne s'affiche pas, sélectionnez une commande sur la page Ajouter le support pureQuery, puis cliquez à nouveau sur
.
Lorsque vous cliquez sur Terminer, le plan de travail crée le
dossier pureQueryFolder dans votre projet JPA. Ce dossier contient le
fichier Default.bindProps.
Si vous souhaitez désactiver la capture et la définition d'accès des instructions SQL
qui se trouvent dans les applications d'API différentes de pureQuery et supprimer le support pureQuery du projet
JPA, cliquez sur ce projet avec le bouton droit de la souris puis sélectionnez
pureQuery > Supprimer le support pureQuery.
- Importez le fichier com.ibm.ws.jpa.jar dans votre projet et ajoutez-le à votre
chemin de génération. Ce fichier est fourni avec le serveur d'applications WebSphere 7.0.
- Créez les fichiers pureQueryXML pour votre application JPA en cliquant sur le fichier
persistence.xml de votre projet JPA avec le bouton droit de la souris
puis en sélectionnant Générer les fichiers pureQueryXML. L'opération de cette étape se substitue à l'exécution manuelle de la commande wsdb2gen.
- Facultatif : Affichez
les instructions SQL contenues dans vos fichiers pureQueryXML et prenez connaissance
des informations qui leurs sont associées.
Lorsque vous sélectionnez votre dossier de projet dans l'explorateur de packages ou l'un des fichiers de votre projet, la vue Structure SQL est remplie. Si la vue n'est pas ouverte, cliquez avec le bouton droit de la souris sur le projet et sélectionnez pureQuery > Afficher la structure SQL.
- La page Base de données indique les objets de base de données auxquels les instructions SQL peuvent faire référence.
- La page Java indique les fichiers Java contenant les instructions SQL. Si votre projet contient des fichiers source Java, vous pouvez cliquer deux fois sur une instruction SQL pour ouvrir le fichier source correspondant dans l'éditeur Java.
- La page SQL fait apparaître les modules DB2
suggérés par le plan de travail pour les instructions SQL capturées. A ce stade, étant
donné que vous n'avez pas encore effectué l'opération de définition des accès, la vue
affiche uniquement les modules que le plan de travail créera consécutivement à cette
opération.
- Facultatif : Editez les fichiers pureQueryXML pour votre application.
- Editez le fichier Default.bindProps et définissez les options
déterminant comment l'utilitaire StaticBinder va définir les accès pour les instructions
SQL capturées dans les modules DB2.
- Définissez les accès des instructions SQL capturées dans les modules en procédant
de l'une des façons suivantes :
- Cliquez avec le bouton droit de la souris sur des fichiers pureQueryXML individuels
dans le dossier pureQueryFolder puis sélectionnez Lier.
- Cliquez avec le bouton droit de la souris sur le dossier du projet puis sélectionnez pureQuery > Lier l'application pureQuery. Cette méthode vous permet de définir les accès des instructions SQL dans tous vos fichiers
pureQueryXML en une seule fois.
La fenêtre Sélectionner la connexion
s'ouvre pour vous permettre de choisir la base de données DB2
à utiliser. Vous
pouvez sélectionner une base de données qui n'est pas associée à votre projet Java.
Avertissement : Vous ne pouvez pas effectuer l'opération de définition d'accès si vous travaillez hors ligne. Vous devez être connecté à la base de données DB2 pour laquelle vous allez
définir les accès.
Si vous capturez d'autres instructions SQL dans les fichiers pureQueryXML après cette étape, vous devez redéfinir les accès pour ces fichiers.
- Définissez les accès des instructions SQL capturées dans les modules en procédant
de l'une des façons suivantes :
- Cliquez avec le bouton droit de la souris sur des fichiers pureQueryXML individuels
dans le dossier pureQueryFolder puis sélectionnez Lier.
- Cliquez avec le bouton droit de la souris sur le dossier du projet puis sélectionnez pureQuery > Lier l'application pureQuery. Cette méthode vous permet de définir les accès des instructions SQL dans tous vos fichiers
pureQueryXML en une seule fois.
La fenêtre Sélectionner la connexion
s'ouvre pour vous permettre de choisir la base de données DB2
à utiliser. Vous
pouvez sélectionner une base de données qui n'est pas associée à votre projet Java.
Avertissement : Vous ne pouvez pas effectuer l'opération de définition d'accès si vous travaillez hors ligne. Vous devez être connecté à la base de données DB2 pour laquelle vous allez
définir les accès.
Si vous capturez d'autres instructions SQL dans les fichiers pureQueryXML après cette étape, vous devez réexécuter la définition d'accès sur ces fichiers.
- Facultatif : Affichez les modules DB2
et les instructions SQL qu'ils contiennent.
Sélectionnez le dossier du projet et consultez
la page SQL de la vue Structure SQL afin de vous assurer que les packages DB2 créés sont bien ceux que vous vouliez.
Pour changer les propriétés des modules :
- Editez le fichier Default.bindProps.
- Répétez l'opération de définition des accès.
Vous pouvez encore éditer le source Java ou les instructions SQL dans votre
application. Une fois cette édition terminée, supprimez vos fichiers pureQueryXML puis régénérez ces fichiers. Procédez ensuite à une nouvelle définition des accès.
- Exécutez votre application afin de la tester. Si les accès des instructions SQL de votre application sont définis au sein de la collection dans laquelle se
trouvent les modules associés au pilote, il ne vous est pas nécessaire d'exécuter cette étape.
Que faire ensuite
Vous pouvez utiliser la vue Structure SQL pour identifier et résoudre les incidents liés à
vos instructions SQL. N'oubliez pas que si vous modifiez l'une de vos instructions SQL ou tout autre élément de votre application, vous devez régénérer les fichiers pureQueryXML et recréer vos modules
DB2.
Si vous prévoyez de déployer votre application
dans un fichier JAR : Avant de procéder à ce déploiement, assurez-vous que le
fichier Default.bindProps comporte une entrée pour chaque fichier pureQueryXML contenant
les instructions SQL dont vous voulez définir les accès. L'utilitaire pureQuery
StaticBinder, que vous devez exécuter depuis une ligne de commande de la base de données
sur laquelle vous déployez votre application, opère uniquement sur les fichiers
pureQueryXML qui sont répertoriés dans le fichier Default.bindProps.
Pour
ajouter des fichiers :
- Dans le dossier pureQueryFolder de votre projet, cliquez sur le fichier
Default.bindProps avec le bouton droit de la souris puis sélectionnez pureQuery > Ajouter ou supprimer des entrées.
- Dans la fenêtre Ajouter ou supprimer des entrées, ajoutez tous
les fichiers pureQueryXML nécessaires.