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 InfoSphere 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 avec le bouton droit sur votre projet JPA puis cliquez sur Développement de l'accès aux données. Puis, cliquez sur
Ajouter la prise en charge du développement de l'accès aux données ou Ajouter le support pureQuery. Suivez les étapes de l'assistant Ajouter la prise en charge du développement de l'accès aux données. 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
.
Après avoir cliqué sur Terminer, le plan de travail crée le dossier
dataAccessFolder dans votre projet JPA. Ce dossier contient le
fichier Default.bindProps.
Si vous souhaitez désactiver la capture et liaison des instructions SQL qui se trouvent dans des applications API non-pureQuery et supprimer le support pureQuery dans le projet JPA, cliquez avec le bouton droit sur le projet et sélectionnez
Développement de l'accès aux données > Supprimer le support pureQuery,
puis sélectionnez Développement de l'accès aux données > Supprimer la prise en charge du développement de l'accès aux données.
- 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 de votre application JPA en cliquant avec le bouton droit sur le fichier
persistence.xml de votre projet JPA et en sélectionnant
Développement de l'accès aux données > Générer les fichiers XML pureQuery. 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 est fermée, cliquez avec le bouton droit de la souris sur le projet et sélectionnez Développement de l'accès aux données > 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 dataAccessFolder et sélectionnez Lier.
- Cliquez avec le bouton droit de la souris sur le dossier du projet et sélectionnez Développement de l'accès aux données > Lier une application.
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 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 dataAccessFolder et sélectionnez Lier.
- Cliquez avec le bouton droit de la souris sur le dossier du projet et sélectionnez Développement de l'accès aux données > Lier une application.
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 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.
- 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 dataAccessFolder de votre projet, cliquez avec le bouton droit sur le fichier
Default.bindProps et sélectionnez Développement de l'accès aux données > Ajouter ou supprimer des entrées.
- Dans la fenêtre Ajouter ou supprimer des entrées, ajoutez tous
les fichiers pureQueryXML nécessaires.