Configuration d'attributs de déploiement transactionnels
Vous pouvez configurer les attributs de descripteur de déploiement transactionnel associés à un module EJB ou Web pour permettre à une application d'entreprise d'utiliser des transactions.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Vous pouvez configurer les attributs de déploiement d'une application à l'aide d'un outil d'assemblage.
Vous pouvez utiliser Rational Application Developer, ou un outil équivalent pour configurer les attributs de déploiement d'une application.
Pour utiliser Rational Application Developer pour définir des attributs transactionnels dans le descripteur de déploiement pour un composant d'application (bean enterprise ou servlet), procédez comme suit :
Procédure
- Démarrez l'outil d'assemblage. Pour plus de détails, reportez-vous aux informations de Rational Application Developer.
- Créez ou modifiez le fichier EAR de l'application. Par exemple, pour modifier les attributs d'une application existante,
l'assistant d'importation importe le fichier EAR dans l'outil d'assemblage. Pour
démarrer l'assistant d'importation :
- Cliquez sur Fichier > Importer > fichier EAR.
- Cliquez sur Suivant, puis sélectionnez le fichier EAR.
- Cliquez sur Terminer.
- Dans la vue de l'explorateur de projets de la perspective Java EE, cliquez avec le bouton droit de la souris sur
l'instance du composant, puis cliquez sur Ouvrir avec > Editeur de descripteur de déploiement. Pour trouver l'instance de composant, effectuez l'étape appropriée :
- Pour un bean session, développez Modules EJB > instance_module_ejb > Descripteur de déploiement > Beans session, puis sélectionnez l'instance du bean.
- Pour un servlet, développez Modules Web > application_web > Descripteur de déploiement > composant web, puis sélectionnez l'instance du servlet.
- Facultatif : Pour les beans session uniquement, définissez l'attribut "Type de
transaction" qui définit la façon transactionnelle dont le conteneur appelle une
méthode. Vous pouvez affecter à cet attribut la valeur Conteneur ou Bean, comme suit :
- Pour utiliser des transactions gérées par conteneur, choisissez Conteneur.
- Pour utiliser des transactions gérées par bean, choisissez Bean.
- Dans le bloc-notes du descripteur de déploiement, cliquez sur l'onglet Bean. Dans la section Extensions WebSphere, configurez
éventuellement les attributs Transaction locale. Pour activer la
gestion des confinements de transactions locales, configurez les
attributs d'extensions de composants ci-après. Ces attributs configurent pour le composant, le comportement de l'environnement de
confinement de transaction locale (LTC) du conteneur que celui-ci établit en l'absence
de transaction globale.
- Limite
- Ce paramètre définit la limite de confinement à laquelle toutes les transactions locales du gestionnaire de ressources (RMLT) contenues doivent être terminées. Les valeurs possibles sont Méthode de bean ou ActivitySession.
- Méthode de bean : il s'agit de la valeur par défaut. Si vous sélectionnez cette option, les RMLT doivent être résolues dans la même méthode de bean dans laquelle elles ont été lancées.
- [Uniquement pour les composants EJB] ActivitySession : les RMLT doivent être résolues dans la portée du contexte ActivitySession dans lequel elles ont été lancées ou, en l'absence de contexte ActivitySession, dans la même méthode de bean dans laquelle elles ont été lancées.Remarque : L'option ActivitySession n'est pas prise en charge dans le conteneur Web.
- Programme de résolution
- Ce paramètre définit le composant responsable du démarrage et de l'arrêt des RMLT. Les valeurs possibles sont Application et ContainerAtBoundary.
- Application : il s'agit de la valeur par défaut. L'application est responsable du démarrage et de l'arrêt des RMLT et de leur réalisation dans la limite de confinement de transaction locale (LTC). Les RMLT qui ne sont pas terminées à la fin de la limite LTC sont nettoyées par le conteneur en fonction de l'attribut Action non résolue.
- ContainerAtBoundary : le conteneur est responsable du démarrage des RMLT et de leur réalisation dans la limite de confinement de transaction locale (LTC). Le conteneur démarre une RMLT lorsqu'une connexion est d'abord utilisée dans la portée LTC et la termine automatiquement à la fin de la portée LTC. Si Limite prend la valeur ActivitySession, les RMLT sont répertoriées comme ressources ActivitySession et leur réalisation est régie par ActivitySession. Si Limite prend la valeur BeanMethod, les RMLT sont validées à la fin de la méthode par le conteneur.
- Action non convertie
- Indique la direction que le conteneur demande aux RMLT de prendre si ces transactions ne sont pas résolues à la fin de la limite LTC et que le programme de résolution est défini à Application. Les valeurs possibles sont Annulation et Valider.
- Annulation : il s'agit de la valeur par défaut. A la fin de la limite LTC, le conteneur indique d'annuler toutes les RMLT non résolues.
- Valider : à la fin de la limite LTC, le conteneur indique de valider toutes les RMLT non résolues. Le conteneur demande aux RMLT de valider uniquement en l'absence d'une exception non gérée. Si la méthode d'application s'exécutant dans le contexte de transaction locale se termine avec une exception, toutes les RMLT non résolues sont annulées par le conteneur. Ce comportement est le même pour les transactions globales.
- Partageable
- Indique si le composant peut partager un LTC. Un nouveau LTC est uniquement
lancé si un LTC partageable n'existe pas déjà. Les applications utilisant des confinements LTC partageables ne peuvent pas valider ou annuler explicitement
les connexions du gestionnaire de ressources utilisées dans un confinement LTC partageable (bien qu'elles
puissent utiliser des connexions ayant une fonction de validation automatique).
Si une application démarre un travail, qui n'est pas à validation automatique dans un LTC dont l'attribut du programme de résolution est défini sur Application et l'attribut Partageable est défini sur true, une exception est émise lors de l'exécution. Par exemple, sur une connexion JDBC, un travail sans validation automatique est un travail que l'application exécute après utilisation de la méthode setAutoCommit(false) pour désactiver l'option de validation automatique sur la connexion. Des beans enterprise qui utilisent des BMT (transactions gérées par bean) ne peuvent pas être assemblés avec un jeu d'attributs partageable sur la configuration LTC.
Vous devez définir l'attribut partageable pour tous les composants qui partagent le LTC. Le composant qui crée le LTC partageable, détermine les autres propriétés du LTC partageable, par exemple, l'attribut du programme de résolution.
- Dans la section Extensions WebSphere, configurez les attributs Transaction
globale. Ces attributs configurent pour le composant le comportement en
présence d'une transaction globale.
- Délai d'expiration des transactions de composant
- Pour les beans enterprise utilisant des transactions gérées par conteneur seulement, indique le délai d'expiration en secondes des transactions pour toute nouvelle transaction globale que le conteneur démarre pour le bean enterprise. Pour les transactions démarrées pour un composant, le paramètre Délai d'expiration de la transaction du composant remplace le délai d'expiration de transaction par défaut configuré dans les paramètres de service de transaction pour le serveur d'applications.
Les attributs suivants activent le support WS-AtomicTransaction et WS-BusinessActivity pour des applications JAX-RPC uniquement :
- Utiliser une transaction atomique des services Web
- Pour les beans enterprise uniquement, lorsque cet attribut est sélectionné, si le composant d'application émet des demandes de service Web, un contexte de transaction est propagé avec ces demandes en respectant le support WebSphere WS-AtomicTransaction décrit dans Prise en charge de Web Services Atomic Transaction sur le serveur d'applications. Lorsque cet attribut n'est pas sélectionné, les demandes de service Web ne véhiculent pas de contexte de transaction.
- Envoyer une transaction atomique des services Web à la demande
- Pour les composants Web uniquement, lorsque cet attribut est sélectionné, si le composant d'application émet des demandes de services Web, un contexte de transaction est propagé avec ces demandes en respectant le support WebSphere WS-AtomicTransaction décrit dans Prise en charge de Web Services Atomic Transaction sur le serveur d'applications. Lorsque cet attribut n'est pas sélectionné, les demandes de service Web ne véhiculent pas de contexte de transaction.
- S'exécuter à l'aide d'une transaction automatique des services Web lors de demandes entrantes
- Pour les composants Web uniquement, lorsque cet attribut est sélectionné, les composants d'applications Web sont préparés pour s'exécuter dans un contexte WS-AtomicTransaction reçu. Un composant d'application Web peut s'exécuter dans un contexte WS-AtomicTransaction reçu tout comme un bean enterprise déployé avec un type de transaction de conteneur Supports. Si cet attribut n'est pas sélectionné, le conteneur du composant d'application Web interrompt le contexte de transaction reçu, d'une façon semblable au comportement d'un conteneur EJB pour un bean enterprise déployé avec un type de transaction de conteneur NotSupported.
Si votre application utilise JAX-WS, activez la prise en charge de WS-AtomicTransaction ou WS-BusinessActivity en créant des règles, en y ajoutant le type de règle WS-Transaction et en associant ces règles au service ou au client.
Si un ensemble de règles associé à un client inclut le type de règle WS-Transaction, un contexte de transaction globale actif est propagé avec une demande de service Web, d'une façon similaire aux descripteurs de déploiement Utiliser une transaction atomique des services Web et Envoyer une transaction atomique des services Web à la demande, décrits plus haut dans cette rubrique. Par ailleurs, lorsque le type de règle WS-Transaction est inclus, le service s'exécute dans un contexte WS-AtomicTransaction reçu, d'une façon semblable au descripteur de déploiement Exécuter en utilisant une transaction automatique des services Web lors de demandes entrantes, décrit plus haut dans cette rubrique.
- Pour les composants EJB uniquement, configurez pour les transactions gérées par
conteneur la façon dont le conteneur gère les limites de la transaction en
cas de délégation d'un appel de méthode à la méthode métier d'un bean
enterprise.
- Dans le bloc-notes du descripteur de déploiement, cliquez sur l'onglet Assemblage. La section Transactions de conteneur présente un tableau des méthodes pour les beans enterprise.
- Pour chaque méthode du bean enterprise, définissez le type de transaction de conteneur avec une valeur appropriée. La valeur par défaut pour le type de transaction de conteneur est Requis : l'appel de la méthode se produit donc dans le contexte d'une transaction. Cette transaction correspond à la transaction du composant client (local ou distant) ou, si le composant client ne s'exécute pas dans une transaction, à une nouvelle transaction démarrée par le conteneur du composant.
Si l'application utilise ActivitySessions, la façon dont le conteneur gère les limites de la transaction en cas de délégation d'un appel de méthode dépend du type de transaction de conteneur défini dans cette tâche et de l'attribut ActivitySession, décrit dans Définition des attributs de déploiement d'une session ActivitySession dans un module EJB. Pour plus de détails concernant la relation entre ces deux propriétés, voir ActivitySession et combinaison de règles de conteneur.
- Pour les applications de services Web utilisant une liaison SOAP/JMS et
participant à WS-AtomicTransactions, définissez le type de transaction de
conteneur du bean géré par message nommé "MDB du routeur JMS" avec la
valeur NotSupported, comme décrit à l'étape précédente. Les applications de services Web utilisant une liaison SOAP/JMS incluent un
bean géré par message de routeur nommé "MDB du routeur JMS" dans le fichier
d'archive d'entreprise assemblé. Si un service Web utilise une liaison SOAP/JMS et participe à
WS-AtomicTransactions, comme décrit dans Prise en charge de Web Services Atomic Transaction sur le serveur d'applications, définissez la valeur NotSupported pour le type de
transaction de conteneur du "MDB du routeur JMS".
Pour les applications de services Web utilisant une liaison SOAP/HTTP et participant à WS-AtomicTransactions, cette opération n'est pas nécessaire.
- Pour les composants d'applications client uniquement, activez le support du client pour la démarcation de transaction. Dans le bloc-notes du descripteur de déploiement, cochez la case Autoriser la démarcation JTA. Cette option oblige le conteneur client à relier l'interface UserTransaction JTA (Java™ Transaction API) dans JNDI à java:comp/UserTransaction pour le composant client. Des contraintes s'appliquent à la prise en charge des transactions dans le conteneur client, comme expliqué dans Support client pour les transactions.
- Enregistrez les modifications dans le descripteur de déploiement.
- Fermez l'éditeur du descripteur de déploiement.
- A l'invite, cliquez sur Oui pour sauvegarder les modifications apportées au descripteur de déploiement.
- Vérifiez les fichiers archive. Pour plus d'informations sur la vérification des fichiers à l'aide de Rational Application Developer, consultez les informations relatives à Rational Application Developer.
- Dans le menu du projet, cliquez sur Déployer pour générer le code de déploiement EJB.
- Facultatif : Testez votre module finalisé sur une installation de serveur d'applications. Cliquez
avec le bouton droit sur un module, cliquez sur Exécuter sur le
serveur et suivez les instructions dans l'assistant qui s'affiche. Important : Utilisez uniquement l'option Exécuter sur le serveur pour le test d'unités. L'outil d'assemblage contrôle l'installation du serveur d'applications et, à la publication à distance d'une application, écrase le fichier de configuration de ce serveur. N'utilisez pas l'option d'exécution sur le serveur sur des serveurs de production.
Que faire ensuite


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_entra2
Nom du fichier : tjta_entra2.html