Ingegneria del software Modulo 3 – Tecniche d’implementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 5 – Demarcazione
Demarcazione gestita dal client (1) Un client che usa la demarcazione esplicita delle transazioni può eseguire aggiornamenti automatici su più database che risiedono in vari server di transazione
Demarcazione gestita dal client (2) Il programmatore dell’applicazione demarca la transazione con chiamate begin e commit Il server EJB assicura che gli aggiornamenti ai database A e B siano transazionali Il proxy del servizio di transizioni sul client diffonde automaticamente il contesto transazionale ai due server EJB Quando il programma client esegue il commit, i due server EJB eseguono il protocollo two-phase commit
Demarcazione gestita dal container (1) L’attributo transazionale consente al container di controllare la demarcazione delle transazioni
Demarcazione gestita dal container (2) Un client non transazionale invoca l’Enterprise bean X (il messaggio dal client non include un contesto transazionale) Il container inizia una nuova transazione inviando il metodo remoto a X Il lavoro di X viene eseguito nel contesto transazionale Quando X chiama Y, il lavoro eseguito da Y è incluso anche automaticamente nella transazione FINE