Invocar transações

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

Sequência de operações de uma transação de invocação sem marcação de tempo
Figura 1: transação de invocação não programada

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.

Sequência de operações de uma transação de invocação com marcação de tempo
Figura 2: transação de invocaçã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.