Transazioni ereditate

Un pacchetto può eseguire un altro pacchetto tramite l'attività Esegui pacchetto. Il pacchetto figlio, ovvero il pacchetto eseguito dall'attività Esegui pacchetto, può creare la propria transazione del pacchetto o ereditare quella del padre.

Un pacchetto figlio eredita la transazione del pacchetto padre se sono soddisfatte le due condizioni seguenti:

  • Il pacchetto viene richiamato da un'attività Esegui pacchetto.

  • Anche l'attività Esegui pacchetto che richiama il pacchetto partecipa alla transazione del pacchetto padre.

I contenitori e le attività del pacchetto figlio possono partecipare alla transazione del pacchetto padre solo se il pacchetto figlio partecipa alla transazione.

Nella figura seguente sono illustrati tre pacchetti che utilizzano transazioni. Ogni pacchetto include più attività. Per evidenziare il comportamento delle transazioni, sono visualizzate solo le attività Esegui pacchetto. Il pacchetto A esegue i pacchetti B e C. Il pacchetto B esegue a sua volta i pacchetti D ed E e il pacchetto C esegue il pacchetto F.

Ai pacchetti e alle attività sono associati gli attributi di transazione seguenti:

  • TransactionOption è impostata su Required per i pacchetti A e C

  • TransactionOption è impostata su Supported per i pacchetti B e D e per le attività Esegui pacchetto B, Esegui pacchetto D e Esegui pacchetto F.

  • TransactionOption è impostata su NotSupported per il pacchetto E e per le attività Esegui pacchetto C e Esegui pacchetto E.

Flusso delle transazioni ereditate

Solo i pacchetti B, D e F possono ereditare transazioni dal pacchetto padre.

I pacchetti B e D ereditano la transazione avviata dal pacchetto A.

Il pacchetto F eredita la transazione avviata dal pacchetto C.

I pacchetti A e C controllano le proprie transazioni.

Il pacchetto E non utilizza transazioni.