Quando si crea un flusso di messaggi che interagisce con i database, è possibile scegliere se eseguire il commit degli aggiornamenti effettuati quando il nodo corrente ha completato l'elaborazione o quando il richiamo corrente del flusso di messaggi è terminato.
Per ogni nodo, selezionare l'opzione appropriata per la proprietà Transazione per specificare quando eseguire il commit degli aggiornamenti del suo database:
Il valore scelto è implementato per le tabelle del database che sono state aggiornate. Non è possibile selezionare un valore diverso per ogni tabella.
Se l'opzione Transazione è stata impostata su Commit, il funzionamento del flusso di messaggi e l'esecuzione del commit degli aggiornamenti del database possono essere influenzati dall'utilizzo dell'istruzione PROPAGATE.
Se si sceglie di includere un'istruzione PROPAGATE nell'ESQL del nodo, che genera uno o più messaggi di output dal nodo, l'elaborazione dell'istruzione PROPAGATE non è considerata completa fino a quando l'intero percorso intrapreso dal messaggio di output non sia stato completato. Questo percorso potrebbe includere diversi altri nodi, compresi uno o più nodi di output. Solo allora il nodo che emette l'istruzione PROPAGATE riceve di nuovo il controllo ed il suo ESQL termina. A quel punto, si esegue un commit del database, se ritenuto opportuno.
Se uno dei nodi sul percorso distribuito individua un errore e genera un'eccezione, l'elaborazione del nodo in cui è stata codificata l'istruzione PROPAGATE non termina mai. Se l'elaborazione dell'errore ha come risultato un rollback, il flusso di messaggi e l'aggiornamento del database in questo nodo sono sottoposti a rollback. Tale funzionamento è coerente con l'operazione dichiarata per l'opzione Commit, ma potrebbe non essere quello previsto.