Richiama transazioni

Le Transazioni di chiamata vengono utilizzate per chiamare 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, le transazioni di chiamata supportano le transazioni con e senza temporizzazione. Per ulteriori informazioni sulle transazioni con timer, consulta la sezione Azioni con timer e senza timer.

Transazione di chiamata senza temporizzazione

Sequenza di operazioni di una transazione di chiamata senza temporizzazione
Figura 1: transazione Invoke senza temporizzazione

Richiama azione richiesta

Direzione: iniziatore -> target

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.
  • Elimina risposta: un flag che indica se l'azione di chiamata della risposta deve essere eliminata.
  • ID interazione: un numero intero utilizzato per abbinare l'azione di chiamata della richiesta all'azione di chiamata della risposta.

Richiama azione di risposta

Direzione: target -> iniziatore

Dopo che il target ha ricevuto l'azione di richiesta di chiamata, finalizzerà la transazione con un'azione di risposta di chiamata che contiene:

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

Restrizioni per le chiamate senza tempo

L'azione di richiesta di chiamata può essere un gruppo, ma in questo caso deve essere impostato il flag Sopprima risposta. Il ragionamento è che, altrimenti, la rete potrebbe essere inondata da risposte simultanee di tutti i membri 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 è di tipo groupcast, questa transazione termina senza risposta.

Transazioni di chiamata con timestamp

Come le 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 a tempo
Figura 2: Transazione di chiamata a tempo

Azione richiesta temporizzata

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 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

È uguale all'azione invoca richiesta descritta in precedenza.

Richiama azione di risposta

È uguale all'azione Invoca azione di risposta descritta in precedenza.

Restrizioni per l'attivazione a tempo

Tutti i comandi di chiamata possono essere richiamati in un'interazione temporizzata. L'azione Richiesta con temporizzazione, l'azione Richiesta di chiamata e l'azione Risposta di chiamata sono solo per Unicast e pertanto non possono essere utilizzate come trasmissione collettiva nelle transazioni di chiamata con temporizzazione.

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.