des enterprise beans - Département Informatique
des enterprise beans - Département Informatique
des enterprise beans - Département Informatique
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Gestion <strong>des</strong> exceptions dans les transactions<br />
opération. Un client peut souvent réparer ces erreurs au niveau de<br />
l’application sans avoir besoin d’annuler la transaction toute entière.<br />
L’application ou le programme appelant obtient en retour la même<br />
exception que celle qui a été déclenchée, ce qui permet au programme<br />
appelant de connaître la nature précise du problème. Quand une<br />
exception survient au niveau de l’application, l’instance de l’<strong>enterprise</strong><br />
bean n’annule pas automatiquement la transaction du client. Le client<br />
connaît maintenant le message d’erreur et a l’opportunité de l’évaluer, de<br />
prendre les décisions nécessaires pour corriger la situation et de réparer la<br />
transaction. Ou alors, il peut annuler la transaction.<br />
Gestion <strong>des</strong> exceptions au niveau de l’application<br />
Comme les exceptions au niveau de l’application signalent <strong>des</strong> erreurs<br />
dans la logique métier, c’est à votre client de les gérer. Bien que ces<br />
exceptions puissent nécessiter l’annulation de la transaction, elles ne<br />
marquent pas automatiquement la transaction pour annulation (rollback).<br />
Le client peut tenter à nouveau la transaction, bien que la plupart du<br />
temps il doive l’abandonner et l’annuler.<br />
En tant que fournisseur du bean, vous devez vous assurer que l’état du<br />
bean est tel que si le client continue la transaction, l’intégrité <strong>des</strong> données<br />
sera maintenue. Si vous ne pouvez pas le garantir, vous devrez marquer la<br />
transaction pour annulation (rollback).<br />
Annulation de la transaction<br />
Quand votre client obtient une exception au niveau de l’application, il faut<br />
vérifier d’abord si la transaction en cours a été marquée pour annulation<br />
(rollback) seulement. Par exemple, un client peut recevoir une<br />
javax.transaction.TransactionRolledbackException. Cette exception indique<br />
que l’<strong>enterprise</strong> bean helper a échoué et que la transaction a été<br />
abandonnée ou marquée pour annulation (rollback) seulement.<br />
Généralement le client ne connaît pas le contexte de la transaction dans<br />
laquelle l’<strong>enterprise</strong> bean a opéré. Le bean peut avoir opéré dans son<br />
propre contexte de transaction, distinct de celui du programme appelant,<br />
ou dans le contexte du programme appelant.<br />
Si l’<strong>enterprise</strong> bean a opéré dans le même contexte de transaction que le<br />
programme appelant, alors le bean lui-même (ou son conteneur) a déjà<br />
marqué la transaction pour annulation (rollback). Quand un conteneur<br />
EJB marque une transaction pour annulation (rollback), le client doit<br />
arrêter tout travail de la transaction. Habituellement, un client utilisant les<br />
transactions déclaratives obtient une exception appropriée, comme<br />
javax.transaction.TransactionRolledbackException. Notez que les<br />
transactions déclaratives sont celles où le conteneur gère les détails de la<br />
transaction.<br />
Gestion <strong>des</strong> transactions 13-9