As transações de invocação são usadas para invocar um ou mais comandos de cluster em um nó de destino. Elas são semelhantes a chamadas de procedimento remoto feitas para um comando definido no cluster.
De maneira semelhante às transações de gravação, as transações de invocação oferecem suporte a transações cronometradas e não cronometradas. Consulte a seção Ações cronometradas e não cronometradas para mais informações sobre transações cronometradas.
Transação de invocação não cronometrada
Ação de solicitação de invocação
Direção: iniciador -> destino
Semelhante à ação de solicitação de leitura e à ação de solicitação de gravação, nessa ação o iniciador fornece ao destino:
- Solicitações de invocação: uma lista de caminhos para comandos de cluster, bem como argumentos opcionais para os comandos, chamados de campos de comando.
- Solicitação cronometrada: um flag que indica se essa ação faz parte de uma transação de invocação cronometrada.
- Suprimir resposta: um flag 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 ação de resposta de invocação.
Ação de resposta de invocação
Direção: destino -> iniciador
Depois que o destino recebe a ação de solicitação de invocação, ele finaliza a transação com uma ação de resposta de invocação que contém:
- Respostas de invocação: 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 não cronometrada
A ação de solicitação de invocação pode ser um grupo, mas, nesse caso, o flag Suprimir resposta precisa ser definido. Caso contrário, a rede poderá ser inundada por respostas simultâneas de todos os membros de um grupo.
Para ativar esse comportamento, o caminho usado na lista de solicitações de invocação pode conter grupos ou curingas, mas apenas no campo "Endpoint". Além disso, se a ação for um grupo, essa transação será encerrada sem resposta.
Transações de invocação cronometradas
Semelhante às transações de gravação cronometradas, as transações de invocação cronometradas também começam com a ação de solicitação cronometrada.
Ação de solicitação cronometrada
Direção: iniciador -> destino
Um iniciador começa 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 cronometrada é recebida, o destino precisa confirmar a ação de solicitação cronometrada com uma ação de resposta de status. Depois que o iniciador recebe uma ação de resposta de status informando que não há erros, ele envia uma ação de solicitação de invocação.
Ação de solicitação de invocação
Igual à ação de solicitação de invocação descrita anteriormente.
Ação de resposta de invocação
Igual à ação de resposta de invocação descrita anteriormente.
Restrições de invocação cronometrada
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 Unicast-apenas e, portanto, não podem ser usadas como grupo em transações de invocação cronometradas.
A ação de solicitação de invocação oferece suporte ao uso de caminhos com grupos, bem como curingas, mas a ação de resposta de invocação não oferece suporte ao uso de curingas.