Richiama transazioni

Le transazioni di richiamo 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 le transazioni con e senza temporizzazione. Consulta le Azioni a tempo e non a tempo per ulteriori informazioni sulle transazioni a tempo.

Transazione di chiamata non a tempo

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

Richiama azione richiesta

Direzione: iniziatore -> Destinazione

Come per le azioni di richiesta di lettura e di scrittura, in questa azione l'iniziatore fornisce al target:

  • Richieste di chiamata: un elenco di percorsi ai comandi di cluster, nonché di 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.
  • Soppress risposta: un flag che indica se l'azione Richiama risposta deve essere soppressa.
  • Interaction ID (ID interazione): un numero intero utilizzato per associare l'azione di richiesta di chiamata a l'azione di richiamo di risposta.

Richiama azione di risposta

Direzione: target -> Iniziatore

Dopo aver ricevuto l'azione di richiesta di chiamata, il target finalizza con un'azione di risposta di chiamata che comporta:

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

Limitazioni per le chiamate non a tempo

L'azione Invoke Request Action può essere un groupcast, ma in questo caso il valore Suppress È necessario impostare il flag di risposta. La motivazione è che, in caso contrario, la rete potrebbe essere sommersi 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 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 -> Destinazione

Un iniziatore avvia la transazione inviando questa azione che contiene:

  • Timeout: il numero di millisecondi per cui questa transazione può rimanere aperta. Durante questo periodo, l'azione successiva inviata dall'iniziatore verrà considerata valida.

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

Richiama azione richiesta

Uguale alla descrizione precedente Richiama azione richiesta.

Richiama azione di risposta

Uguale alla descrizione precedente Richiama azione di risposta.

Limitazioni relative alle chiamate a tempo

Tutti i comandi di chiamata possono essere richiamati in un'interazione temporizzata. Richiesta a tempo L'azione, l'azione di richiesta di chiamata e l'azione di risposta di chiamata sono Solo Unicast, pertanto non può essere usato come groupcast su Timed Richiama transazioni.

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.