Invocar transações

Invocar transações são usadas para invocar um ou mais comandos de cluster em um nó de destino. É semelhante às chamadas de procedimentos remotos feitas para um comando definido no cluster.

De maneira semelhante às transações de gravação, a função de invocação de transações é compatível com 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

Sequência de operações de uma transação de invocação não cronometrada
Figura 1: transação de invocação não cronometrada

Invocar ação de solicitação

Direção: Iniciador -> Alvo

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:

  • Invocar solicitações: uma lista de caminhos para comandos do cluster, bem como argumentos opcionais para os comandos, denominados campos de comando.
  • Solicitação cronometrada: uma sinalização que indica se essa ação faz parte de uma transação de invocação cronometrada.
  • Suprimir resposta: uma sinalização que indica se a ação de invocação de resposta precisa ser suprimida.
  • ID de interação: um número inteiro usado para corresponder a ação de solicitação de invocação com a ação de resposta de invocação.

Invocar ação de resposta

Direção: alvo -> 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 carrega:

  • Invocar respostas: uma lista de respostas de comando ou status para cada solicitação de chamada enviada.
  • ID de interação: um número inteiro usado para corresponder a ação de resposta de invocação com a ação de solicitação de invocação.

Restrições de invocação não cronometrada

A ação de solicitação "Invocar" pode ser um groupcast, mas, nesse caso, a sinalização Suprimir resposta precisa ser definida. A justificativa é 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 de solicitações de invocação pode conter grupos e também caracteres curinga, mas apenas no campo "Endpoint". Além disso, se a ação for groupcast, essa transação será encerrada sem resposta.

Transações de invocação com marcação de tempo

Assim como as transações de gravação cronometradas, as transações de invocação cronometrada também começam com a ação de solicitação cronometrada.

Sequência de operações de uma transação de invocação cronometrada
Figura 2: transação de invocação cronometrada

Ação de solicitação com marcação de tempo

Direção: Iniciador -> Alvo

Um iniciador inicia a transação enviando a seguinte 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 for recebida, o destino precisará confirmá-la com uma ação de resposta de status. Quando o iniciador receber uma ação de resposta de status que não informa erros, ele enviará uma ação de solicitação de invocação.

Invocar ação de solicitação

Igual à opção Invocar ação de solicitação descrita anteriormente.

Invocar ação de resposta

Igual à opção 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 cronometradas.

A "Invocar ação de solicitação" é compatível com o uso de caminhos com grupos, bem como caracteres curinga, mas a "Invocar ação de resposta" não é compatível com o uso de caracteres curinga.