Le transazioni di richiamo vengono utilizzate per richiamare uno o più comandi del cluster su un nodo di destinazione. È simile alle chiamate di procedura remota effettuate a un comando definito nel cluster.
In modo simile alle transazioni di scrittura, le transazioni di richiamo supportano le transazioni con e senza timer. Per ulteriori informazioni sulle transazioni a tempo, consulta la sezione Azioni a tempo e non a tempo.
Transazione di richiamo non temporizzata
Richiama azione di richiesta
Direzione: Initiator -> 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 per i comandi del cluster, nonché argomenti facoltativi per i comandi, denominati Campi comando.
- Richiesta con timer: un flag che indica se questa azione fa parte di una transazione di richiamo con timer.
- Suppress Response: un flag che indica se l'azione Invoke Response deve essere soppressa.
- ID interazione: un numero intero utilizzato per abbinare l'azione di richiesta di richiamo all'azione di risposta di richiamo.
Richiama azione di risposta
Direzione: Target -> Initiator
Dopo aver ricevuto l'azione di richiesta di richiamo, il target finalizzerà la transazione con un'azione di risposta di richiamo che contiene:
- Invoke Responses: un elenco di risposte o stati dei comandi per ogni richiesta di richiamo inviata.
- ID interazione: un numero intero utilizzato per abbinare l'azione di risposta di richiamo all'azione di richiesta di richiamo.
Limitazioni di chiamata senza limiti di tempo
L'azione Invoke Request può essere un groupcast, ma in questo caso il flag Suppress Response deve essere impostato. Il motivo è che, altrimenti, la rete potrebbe essere inondata da risposte simultanee 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 è di tipo groupcast, questa transazione termina senza risposta.
Transazioni di chiamata con timer
Analogamente alle transazioni di scrittura temporizzate, anche le transazioni di chiamata temporizzate iniziano con l'azione di richiesta temporizzata.
Azione di richiesta a tempo
Direzione: Initiator -> Target
Un Initiator avvia la Transaction inviando questa Action che contiene:
- Timeout: il numero di millisecondi per cui questa transazione può rimanere aperta. Durante questo periodo, la prossima azione inviata dall'Initiator verrà considerata valida.
Una volta ricevuta l'azione di richiesta a tempo, il target deve confermare l'azione di richiesta a tempo con un'azione di risposta di stato. Una volta che l'Initiator riceve un'azione Status Response che non segnala errori, invia un'azione Invoke Request.
Richiama azione di richiesta
Come l'azione Richiesta di chiamata descritta in precedenza.
Richiama azione di risposta
Come l'azione di risposta Invoke descritta in precedenza.
Limitazioni di Invoke temporizzato
Tutti i comandi di richiamo possono essere chiamati su un'interazione a tempo. Le azioni Timed Request Action, Invoke Request Action e Invoke Response Action sono solo per Unicast e pertanto non possono essere utilizzate come groupcast nelle transazioni Timed Invoke Transaction.
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.