> Tech > Transactions

Transactions

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La JTA (Java Transaction API) offre le support sous-jacent de J2EE pour les transactions. Bien qu'une application puisse appeler des méthodes JTA directement, une application ITP classique utilise le support EJB plus commode pour les transactions déclaratives.
Toutes les formes d'EJB vous permettent de spécifier déclarativement (c'est-à -dire, à  l'extérieur du

code Java
d’EJB) deux choses : les niveaux d’isolation
des transactions et quand le
conteneur d’EJB doit commencer et
terminer les transactions. Pour cela,
vous allez indiquer le comportement
transactionnel des méthodes de chacun
des EJB. Le conteneur d’EJB fait les
appels JTA appropriés pour le compte
d’un EJB transactionnel, dispensant de
ce type de code applicatif. Certains
conteneurs d’EJB, dont WAS, offrent
aussi des options supplémentaires à 
l’appui des transactions, comme le
support intégré pour une simultanéité
de base de données « optimiste » avec
les EJB d’entité. De la sorte, les EJB
constituent le moyen le plus simple et
le plus fonctionnel de mise en oeuvre
des transactions ITP. Le moyen le plus
simple de mettre en oeuvre des transactions
pour une application ITP
consiste à  spécifier, pour une ou plusieurs
méthodes du stateful session
EJB principal, qu’une nouvelle transaction
a commencé quand la méthode
est appelée, et que la transaction est
engagée ou annulée quand la méthode
revient. Par exemple, un servlet frontal
d’application ou un code d’aide pourrait
appliquer la séquence suivante
d’appels de méthode au stateful session
EJB principal d’une application de
saisie de commandes :

curOrder.setCustomerName( customerName );
...
curOrder.addItem( itemId, qty );
curOrder.addItem( itemId, qty );
...
curOrder.commitOrder();

Les méthodes setXxxx et addXxxx
sont spécifiées comme non transactionnelles,
c’est-à -dire qu’elles ne
constituent ni le début ni la fin d’une
transaction. Chacune de ces méthodes
(dans cet exemple) change simplement
la valeur de variables de programme
dans le stateful session EJB. La
méthode commitOrder est déclarée
comme démarrant une transaction
quand elle est appelée et comme engageant
la transaction quand elle revient.
Le conteneur d’EJB procède aux appels
de méthodes JTA nécessaires pour
le compte du session EJB, de sorte que
le programmeur n’a pas besoin d’inclure
le moindre code d’implémentation.
Dans une application ITP classique,
les méthodes du stateful session
EJB (commitOrder dans l’exemple précédent)
appellent les méthodes de
divers EJB CMP pour mettre à  jour les
tables de base de données. Les
méthodes EJB CMP appropriées sont
déclarées pour participer dans une
transaction existante que l’appelant a
commencée. Dans ce mécanisme, les
mises à  jour de la base de données des EJB se produisent dans les transactions définies par le stateful
session EJB principal de l’application.
Important : alors que les transactions sont souvent vues
sous l’angle des mises à  jour de la base de données, elles peuvent
aussi couvrir d’autres types d’actions (comme envoyer
des messages). Le support de transactions EJB est conçu
pour ce domaine plus large également. A noter qu’on peut
aussi utiliser le support de transactions déclaratives avec un
stateful session EJB qui emploie JDO au lieu de EJB pour
l’accès à  la base de données.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010