30.01.2015 Views

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!