Java Transaction API
# Java Transaction API

Java Transaction (JTA) est une API présente dans la spécification Java EE.

JTA fournit des interfaces Java standards entre un gestionnaire de transaction et les différentes parties impliquées dans un système de transactions distribuées : le gestionnaire de ressources, le serveur d'application et les applications transactionnelles.

JTA est un protocole de commit à deux phases :

* 1re phase : Chaque partie prenant part à la transaction distribuée s'engage à verrouiller les données concernées et à valider ces données une fois la transaction terminée
* 2e phase : Chaque partie valide les changements des données. Cette phase est obligatoire, dès lors que les parties se sont engagées.

Ce protocole de commit à deux phases fonctionne plutôt bien sur les transactions courtes, mais est totalement inefficace en cas de transaction lente où le risque d'une déconnexion ou bien d'un crash entre les deux phases est élevé, car les verrous restent posés après la première phase et ne sont libérés qu'après la deuxième phase.

La spécification JTA a été développée par le Java Community Process sous la JSR 907.

