Utilisation de transactions gérées par composant

Vous pouvez activer un bean session, un servlet ou un composant d'application pour utiliser des transactions gérées par composant afin qu'ils gèrent leurs propres transactions directement au lieu de passer par le conteneur.

Pourquoi et quand exécuter cette tâche

Remarque : Les beans entity ne peuvent pas gérer de transactions (et par conséquent, utiliser des transactions gérées par bean).

Pour activer un bean session, un servlet ou un composant d'application et utiliser ainsi des transactions gérées par composant, procédez comme suit :

Procédure

  1. Pour des beans session, définissez l'attribut Type de transaction dans le descripteur de déploiement du composant sur la valeur Bean, comme décrit dans Configuration d'attributs de déploiement transactionnels.
  2. Pour des composants de client d'applications, activez la prise en charge de la démarcation de transaction en définissant l'attribut Autoriser la démarcation JTA dans le descripteur de déploiement du composant, comme décrit dans Configuration d'attributs de déploiement transactionnels.
  3. Rédigez le code du composant de manière à gérer activement les transactions.

    Pour des beans session avec état, il est inutile de terminer (c'est-à-dire valider ou annuler) une transaction lancée dans une méthode donnée avant l'exécution de cette méthode. La transaction peut être exécutée ultérieurement, par exemple au moment d'un autre appel de la même méthode, voire dans une méthode distincte. Toutefois, il est conseillé de construire l'application de sorte qu'une transaction démarre et se termine dans le même appel de méthode pour simplifier le débogage et la maintenance de l'application.

    L'extrait de code suivant montre le code standard requis pour obtenir un objet encapsulant le contexte de transaction et implique la procédure qui suit :
    • Créez un objet javax.transaction.UserTransaction en appelant une consultation dans java:comp/UserTransaction.
    • Utilisez l'objet UserTransaction pour démarquer la limite d'une transaction au moyen de méthodes transactionnelles telles que begin et commit, selon les besoins. Si un composant d'application lance une transaction, il doit également la terminer en appelant la méthode commit ou la méthode rollback.
    ...
    import javax.transaction.*;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    ...
        public float doSomething(long arg1)throws NamingException {
            InitialContext initCtx = new InitialContext();
            UserTransaction userTran = (UserTransaction)initCtx.lookup(
               "java:comp/UserTransaction");
            ...
            //Use userTran object to call transaction methods
            userTran.begin ();
            //Do transactional work
            ...
            userTran.commit ();
            ...
        }
        ...
    }

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_usebmt
Nom du fichier : tjta_usebmt.html