Richiama transazioni

Le transazioni di richiamo vengono utilizzate per richiamare uno o più comandi di 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, Richiama transazioni supporta le transazioni a tempo e quelle non a tempo. Per ulteriori informazioni sulle transazioni a tempo, consulta la sezione Azioni a tempo e non a tempo.

Transazione di chiamata non a tempo

Sequenza di operazioni di una transazione di chiamata non a tempo
Figura 1: transazione di chiamata senza orario

Richiama azione richiesta

Direzione: iniziatore -> target

Analogamente all'azione di richiesta di lettura e all'azione di richiesta di scrittura, in questa azione l'iniziatore fornisce al target:

  • Richieste di chiamata: un elenco di percorsi ai comandi del cluster, nonché argomenti facoltativi per i comandi, denominati Campi comando.
  • Timed Request: un flag che indica se questa azione fa parte di una transazione di chiamata a tempo.
  • Soppress risposta: un flag che indica se l'azione di chiamata della risposta deve essere soppressa.
  • Interaction ID (ID interazione): un numero intero utilizzato per associare l'azione di richiesta di chiamata all'azione di risposta di chiamata.

Richiama azione di risposta

Direzione: Destinazione -> Iniziatore

Dopo che il target riceve l'azione di richiesta di chiamata, finalizza la transazione con un'azione di risposta di chiamata che comporta:

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

Limitazioni per le chiamate non a tempo

L'azione richiesta di chiamata può essere un groupcast, ma in questo caso è necessario impostare il flag Suppress Response. La logica è che, altrimenti, la rete potrebbe essere inondata da risposte simultanee di ogni membro di un gruppo.

Per abilitare questo comportamento, il percorso utilizzato nell'elenco Richieste di chiamata può contenere Gruppi. In alternativa, questi possono contenere caratteri jolly, ma solo nel campo Endpoint. Inoltre, se l'azione è groupcast, questa transazione si termina senza risposta.

Transazioni con chiamata a tempo

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

Sequenza di operazioni di una transazione di chiamata a tempo
Figura 2: transazione di chiamata a tempo

Azione di richiesta a tempo

Direzione: iniziatore -> target

Un iniziatore avvia la transazione inviando questa azione che contiene:

  • Timeout: indica il numero di millisecondi per cui la transazione potrebbe rimanere aperta. Durante questo periodo l'azione successiva inviata dall'iniziatore sarà considerata valida.

Una volta ricevuta l'azione di richiesta a tempo, la destinazione deve confermare l'azione di richiesta a tempo con un'azione di risposta dello stato. Quando l'iniziatore riceve un'azione di risposta dello stato che non segnala errori, invia un'azione di richiesta di chiamata.

Richiama azione richiesta

Uguale alla descrizione precedente Richiama azione richiesta.

Richiama azione di risposta

Come la precedente azione di chiamata di risposta.

Limitazioni relative alle chiamate a tempo

Tutti i comandi richiama possono essere chiamati in un'interazione a tempo. L'azione di richiesta a tempo e l'azione di richiesta di chiamata e l'azione di risposta di chiamata sono solo Unicast e quindi non possono essere utilizzate come groupcast nelle transazioni di chiamata a tempo.

L'azione Invoke Request Support supporta l'utilizzo di percorsi con gruppi e caratteri jolly, mentre l'azione di chiamata non supporta l'utilizzo di caratteri jolly.