Richiama transazioni

Richiama transazioni vengono utilizzate per richiamare uno o più comandi del cluster su un nodo di destinazione. È simile alle chiamate di procedure remote effettuate a un comando definito nel cluster.

In modo simile alle transazioni di scrittura, le transazioni di chiamata supportano transazioni temporizzate e non temporizzate. Per ulteriori informazioni sulle transazioni a tempo, consulta la sezione Azioni a tempo e senza limiti di tempo.

Untimed Invoke Transaction

Sequenza di operazioni di una transazione di chiamata senza tempistiche
Figura 1: Invoke Transaction senza tempistiche

Richiama azione richiesta

Direzione: iniziatore -> target

Analogamente all'azione Read Request e Write Request, in questa azione l'iniziatore fornisce al target:

  • Richieste di invocazione: un elenco di percorsi ai comandi del cluster, nonché argomenti facoltativi per i comandi, denominati Campi comando.
  • Richiesta temporizzata: un flag che indica se questa azione fa parte di una transazione di chiamata temporizzata.
  • Suppress Response: un flag che indica se l'azione Invoke Response Action deve essere eliminata.
  • ID interazione: un numero intero utilizzato per la corrispondenza tra l'azione di richiesta di chiamata e l'azione di risposta di chiamata.

Richiama azione di risposta

Direzione: Target -> Initiator

Dopo aver ricevuto l'azione di richiesta di chiamata, la destinazione finalizzerà la transazione con un'azione di risposta di chiamata che include:

  • Invoca risposte: un elenco di risposte ai comandi o di stato per ogni richiesta di invocazione inviata.
  • ID interazione: un numero intero utilizzato per abbinare l'azione di risposta di chiamata all'azione di richiesta di chiamata.

Limitazioni per le chiamate senza tempistiche

L'azione Richiama richiesta può essere un groupcast, ma in questo caso deve essere impostato il flag Elimina risposta. Il motivo è che altrimenti la rete potrebbe essere inondata da risposte simultanee da parte di ogni membro di un gruppo.

Per attivare questo comportamento, il percorso utilizzato nell'elenco Richieste di chiamata può contenere gruppi e, in alternativa, caratteri jolly, ma solo nel campo Endpoint. Inoltre, se l'azione è groupcast, questa transazione termina senza risposta.

Transazioni di chiamata temporizzate

Analogamente alle transazioni di scrittura temporizzate, anche le transazioni di chiamata temporizzate iniziano con l'azione di richiesta temporizzata.

Sequenza di operazioni di una transazione di chiamata temporizzata
Figura 2: Timed Invoke Transaction

Azione richiesta a tempo

Direzione: iniziatore -> target

Un iniziatore avvia la transazione inviando questa azione che contiene:

  • Timeout: per quanti millisecondi questa transazione può rimanere aperta. Durante questo periodo, la successiva azione inviata dall'iniziatore verrà considerata valida.

Una volta ricevuta l'azione di richiesta temporizzata, il target deve confermarla con un'azione di risposta di stato. Una volta che l'iniziatore riceve un'azione di risposta di stato che non segnala errori, invia un'azione di richiesta di chiamata.

Richiama azione richiesta

Come l'azione di richiesta di chiamata descritta in precedenza.

Richiama azione di risposta

Uguale all'azione di risposta di chiamata descritta in precedenza.

Limitazioni di chiamata temporizzate

Tutti i comandi di chiamata possono essere chiamati in un'interazione a tempo. L'azione Richiesta a tempo, l'azione Richiesta di chiamata e l'azione Risposta di chiamata sono solo Unicast e pertanto non possono essere utilizzate come groupcast nelle transazioni di chiamata a tempo.

L'azione Invoke Request supporta l'utilizzo di percorsi con gruppi e caratteri jolly, ma l'azione Invoke Response non supporta l'utilizzo di caratteri jolly.