11.7.3. Démarrer une transaction


Cette procédure montre comment démarrer une nouvelle transaction JTA, ou comment participer à une transaction distribuée en utilisant le protocole JTS (Java Transaction Service).
Transactions distribuées

Dans une transaction distribuée, les participants à la transaction se trouvent dans des applications séparées sur de multiples serveurs. Si un participant rejoint une transaction déjà existante, plutôt que de créer un nouveau contexte de transaction, les deux (ou plus) participants qui partagent le contexte participent à une transaction distribuée. Pour utiliser des transactions distribuées, vous devez configurer l'ORB. Veuillez consulter la section ORB Configuration du Administration and Configuration Guide pour plus d'informations sur la configuration ORB.

  1. Obtenez une instance de UserTransaction.

    Vous pouvez obtenir une instance par JNDI, injection, ou un contexte d'EJB, si l'EJB utilise des transactions gérées-bean, par le biais de l'annotation @TransactionManagement(TransactionManagementType.BEAN).
    • JNDI

      new InitialContext().lookup("java:comp/UserTransaction")
      Copy to Clipboard Toggle word wrap
    • Injection

      @Resource UserTransaction userTransaction;
      Copy to Clipboard Toggle word wrap
    • Contexte

      • Pour un bean stateless/stateful :
        @Resource SessionContext ctx;
        ctx.getUserTransaction();
        Copy to Clipboard Toggle word wrap
      • Pour un bean message-driven :
        @Resource MessageDrivenContext ctx;
        ctx.getUserTransaction()
        Copy to Clipboard Toggle word wrap
  2. Appeler UserTransaction.begin() une fois connecté à votre source de données.

    ...
    try {
        System.out.println("\nCreating connection to database: "+url);
        stmt = conn.createStatement();  // non-tx statement
        try {
            System.out.println("Starting top-level transaction.");
            userTransaction.begin();
            stmtx = conn.createStatement(); // will be a tx-statement
            ...
        }
    }
    
    Copy to Clipboard Toggle word wrap
Participer à une transaction en utilisant l'API JTS.

L'un des avantages des EJB est que le conteneur gère toutes les transactions. Si vous avez configuré l'ORB, le conteneur gérera les transactions distribuées pour vous.

Résultat  :

La transaction est lancée. Toute utilisation de votre source de données sera transactionnelle jusqu'à ce que vous validiez ou annuliez la transaction.

Note

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat