Invocar transações são usadas para invocar um ou mais comandos de cluster em um nó de destino. Ele é semelhante às chamadas de procedimentos remotos feitas para um comando definido no cluster.
De maneira semelhante às transações de gravação, as transações de invocação são compatíveis com transações cronometradas e sem marcação de tempo. Consulte a seção Ações com e sem marcação de tempo para mais informações sobre transações com marcação de tempo.
Transação de invocação sem marcação de tempo
Invocar ação da solicitação
Direção: Iniciador -> Objetivo
Semelhante à ação de leitura de solicitação e à ação de solicitação de gravação, nesta ação, o iniciador fornece ao destino:
- Invocar solicitações: uma lista de caminhos para comandos de cluster, bem como argumentos opcionais para os comandos, chamados Campos de comando.
- Solicitação com marcação de tempo: uma sinalização que indica se a ação faz parte de uma transação de invocação com marcação de tempo.
- Resposta de supressão: uma sinalização que indica se a ação de resposta de invocação precisa ser suprimida.
- ID de interação: um número inteiro usado para corresponder a ação de solicitação de invocação à ação de resposta de invocação.
Invocar ação de resposta
Direção: Objetivo -> Iniciador
Depois que o destino receber a ação de solicitação de invocação, ele finalizará a transação com uma ação de resposta de invocação que carrega:
- Invocar respostas: uma lista de respostas de comando ou status para cada solicitação de invocação enviada.
- ID de interação: um número inteiro usado para corresponder a ação de resposta de invocação à ação de solicitação de invocação.
Restrições de invocação sem marcação de tempo
A ação de solicitação de invocação pode ser um groupcast, mas, nesse caso, a sinalização Suppress Response precisa ser definida. O motivo é que, caso contrário, a rede poderia ser inundada por respostas simultâneas de todos os membros de um grupo.
Para ativar esse comportamento, o caminho usado na lista "Invocar solicitações" pode conter Grupos e caracteres curinga, mas apenas no campo "Endpoint". Além disso, se a ação for groupcast, a transação será encerrada sem resposta.
Transações de invocação com marcação de tempo
Assim como as transações de gravação com marcação de tempo, as transações de invocação com marcação de tempo também começam com a ação de solicitação com marcação de tempo.
Ação de solicitação com marcação de tempo
Direção: Iniciador -> Objetivo
Um iniciador inicia a transação enviando essa ação que contém:
- Tempo limite: quantos milissegundos essa transação pode permanecer aberta. Durante esse período, a próxima ação enviada pelo iniciador será considerada válida.
Depois que a ação de solicitação programada for recebida, o destino precisará confirmar a ação com uma ação de resposta de status. Quando o iniciador receber uma ação de resposta de status informando que não há erros, ele vai enviar uma ação de invocação de solicitação.
Invocar ação da solicitação
Igual à ação de Invocar ação de solicitação descrita anteriormente.
Invocar ação de resposta
Igual à ação de Invocar ação de resposta descrita anteriormente.
Restrições de invocação com marcação de tempo
Todos os comandos de invocação podem ser chamados em uma interação cronometrada. A ação de solicitação cronometrada, a ação de solicitação de invocação e a ação de resposta de invocação são somente Unicast e, portanto, não podem ser usadas como groupcast em transações de invocação com tempo determinado.
A ação de solicitação de invocação oferece suporte ao uso de caminhos com grupos, bem como caracteres curinga, mas a ação de resposta de invocação não aceita o uso de caracteres curinga.