Invocar transações

As Transações de invocação 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.

Assim como as transações de gravação, as transações de invocação oferecem suporte a transações temporizadas e não temporizadas. Consulte a seção Ações programadas e não programadas para mais informações sobre transações programadas.

Transação de invocação sem tempo

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

Invocar ação de solicitação

Direção: iniciador -> destino

Assim como nas ações de ler e gravar solicitações, nesta ação, o iniciador fornece ao destino:

  • Solicitações de invocação: uma lista de caminho para comandos de cluster, além de argumentos opcionais para os comandos, chamados Campos de comando.
  • Solicitação com tempo: uma flag que indica se essa ação faz parte de uma transação de invocação com tempo.
  • Suppress Response: uma flag que indica se a ação de invocar resposta precisa ser suprimida.
  • ID de interação: um número inteiro usado para corresponder a ação de invocar solicitação à ação de invocar resposta.

Invocar ação de resposta

Direção: alvo -> iniciador

Depois que o destino receber a ação de solicitação de invocação, ele vai finalizar a transação com uma ação de resposta de invocação que carrega:

  • Respostas de invocação: uma lista de respostas ou status de comando 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 tempo

A ação de solicitação de invocação pode ser um groupcast, mas, nesse caso, a flag Suppress Response precisa ser definida. O motivo é que, caso contrário, a rede pode 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, como alternativa, pode conter caracteres curinga, mas apenas no campo de endpoint. Além disso, se a ação for um 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 com tempo, as transações de invocação com tempo também começam com a ação de solicitação com tempo.

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

Ação de solicitação com tempo

Direção: iniciador -> destino

Um iniciador inicia a transação enviando esta 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 com tempo é recebida, o alvo precisa reconhecer a ação de solicitação com tempo 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 enviará uma ação de solicitação de invocação.

Invocar ação de solicitação

Igual à ação de invocação de solicitação descrita anteriormente.

Invocar ação de resposta

Igual à Ação de invocação de resposta descrita anteriormente.

Restrições de invocação com tempo

Todos os comandos de invocação podem ser chamados em uma interação com timer. A ação de solicitação temporizada, a ação de solicitação de invocação e a ação de resposta de invocação são exclusivas de Unicast e, portanto, não podem ser usadas como groupcast em transações de invocação temporizada.

A ação de invocar solicitação oferece suporte ao uso de caminhos com grupos e caracteres curinga, mas a ação de invocar resposta não oferece suporte ao uso de caracteres curinga.