Le transazioni di chiamata vengono utilizzate per chiamare uno o più comandi del cluster su un nodo di destinazione. È simile alle chiamate di procedure remote effettuate a un comando definito nel cluster.
Analogamente alle transazioni di scrittura, le transazioni di chiamata supportano le transazioni temporizzate e non temporizzate. Per ulteriori informazioni sulle transazioni temporizzate, consulta la sezione Azioni temporizzate e non temporizzate.
Transazione di chiamata non temporizzata
Richiama azione richiesta
Direzione: iniziatore -> destinazione
Analogamente all'azione di richiesta di lettura e all'azione di richiesta di scrittura, in questa azione l'iniziatore fornisce alla destinazione:
- Richieste di chiamata: un elenco di percorsi ai comandi del cluster, nonché argomenti facoltativi per i comandi, denominati Campi di 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 risposta di chiamata deve essere eliminata.
- ID interazione: un numero intero utilizzato per abbinare l'azione di richiesta di richiamo a l'azione di risposta di richiamo.
Richiama azione di risposta
Direzione: destinazione -> iniziatore
Dopo che la destinazione riceve l'azione di richiesta di chiamata, finalizza la transazione con un'azione di risposta di chiamata che contiene:
- Risposte di chiamata: un elenco di risposte ai comandi o di stati per ogni richiesta di chiamata inviata.
- ID interazione: un numero intero utilizzato per abbinare l'azione di risposta di chiamata all'azione di richiesta di chiamata.
Restrizioni di chiamata non temporizzate
L'azione di richiesta di chiamata 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 ogni membro di un gruppo.
Per attivare questo comportamento, il percorso utilizzato nell'elenco delle richieste di chiamata può contenere gruppi e, in alternativa, può contenere 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.
Azione di 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, la destinazione deve confermarla con un'azione di risposta di stato. Una volta ricevuta un'azione di risposta di stato che non segnala errori, l'iniziatore invierà un'azione di richiesta di chiamata.
Richiama azione richiesta
Uguale all'azione di richiesta di chiamata descritta in precedenza.
Richiama azione di risposta
Uguale all'azione di risposta di chiamata Invoke Response Action descritta in precedenza.
Restrizioni di chiamata temporizzate
Tutti i comandi di chiamata possono essere chiamati in un'interazione temporizzata. L'azione di richiesta temporizzata, l'azione di richiesta di chiamata e l'azione di risposta di chiamata sono Unicast-only e pertanto non possono essere utilizzate come groupcast nelle transazioni di chiamata temporizzate.
L'azione di richiesta di chiamata supporta l'utilizzo di percorsi con gruppi, nonché caratteri jolly, ma l'azione di risposta di chiamata non supporta l'utilizzo di caratteri jolly.