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 a tempo e senza tempo. Per ulteriori informazioni sulle transazioni a tempo, consulta la sezione Azioni a tempo e senza tempo.
Richiama transazione senza tempo
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 a tempo: un flag che indica se questa azione fa parte di una transazione di chiamata a tempo.
- 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 include:
- 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.
Limitazioni di invocazione senza tempo
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 a tempo
Analogamente alle transazioni di scrittura a tempo, anche le transazioni di chiamata a tempo iniziano con l'azione di richiesta 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 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.
Limitazioni di chiamata a tempo
Tutti i comandi di chiamata possono essere chiamati in un'interazione a tempo. L'azione di richiesta a tempo, 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 a tempo.
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.