11.7.5. Valider une transaction

Cette procédure montre comment valider une transaction en utilisant JTA (Java Transaction Api). Cet API est utilisé à la fois pour les transactions locales et les transactions distribuées. Les transactions distribuées sont gérées par le JTS (Java Transaction Server) et nécessitent la configuration d'un ORB (Object Request Broker). Pour plus d'informations sur la configuration d'un ORB, veuillez consulter la section ORB Configuration du Administration and Configuration Guide.
Conditions préalables

Vous devez démarrer une transaction avant de pouvoir la valider. Pour plus d'informations sur le démarrage d'une transaction, veuillez consulter Section 11.7.3, « Démarrer une transaction ».

  1. Appeler la méthode commit() sur UserTransaction.

    Lorsque vous appelez la méthode commit() sur UserTransaction, le gestionnaire de transactions tente de valider la transaction.
    @Inject
    private UserTransaction userTransaction;
    
    public void updateTable(String key, String value)
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        try {
            userTransaction.begin():
            <!-- Perform some data manipulation using entityManager -->
            ...
            // Commit the transaction
            userTransaction.commit();
        } catch (Exception ex) {
            <!-- Log message or notify Web page -->
            ...
            try {
                userTransaction.rollback();
            } catch (SystemException se) {
                throw new RuntimeException(se);
            }
            throw new RuntimeException(e);
        } finally {
            entityManager.close();
        }
    }
    
  2. Si vous utilisez des CMT (Container Managed Transactions), vous n'avez pas besoin de valider manuellement.

    Si vous configurez votre bean pour qu'il puisse utiliser des transactions gérées conteneur, le conteneur devra gérer le cyle de vie des transactions pour vous sur la base d'annotations que vous aurez configurées dans le code.
Résultat

Votre source de données valide et votre transaction se termine, ou une exception est lancée.

Note