Invocar transacciones

Las transacciones de invocación se usan para invocar uno o más comandos de clúster en un nodo de destino. Es similar a las llamadas de procedimiento remoto que se realizan a un comando definido en el clúster.

De manera similar a las transacciones de escritura, las transacciones de invocación admiten transacciones cronometradas y no cronometradas. Consulta la sección Acciones cronometradas y no cronometradas para obtener más información sobre las transacciones cronometradas.

Invocar transacción sin tiempo

Secuencia de operaciones de una transacción de invocación sin tiempo
Figura 1: Invoke Transaction sin tiempo

Invoca la acción de solicitud

Dirección: Iniciador -> Destino

Al igual que en las acciones Read Request Action y Write Request Action, en esta acción, el iniciador proporciona al destino lo siguiente:

  • Invoke Requests: Es una lista de rutas de acceso a los comandos de clúster, así como argumentos opcionales para los comandos, denominados Command Fields.
  • Solicitud cronometrada: Es una marca que indica si esta acción forma parte de una transacción de invocación cronometrada.
  • Suprimir respuesta: Es una marca que indica si se debe suprimir la acción de invocar respuesta.
  • ID de interacción: Es un número entero que se usa para hacer coincidir la acción de solicitud de invocación con la acción de respuesta de invocación.

Invocar acción de respuesta

Dirección: Objetivo -> Iniciador

Después de que el destino recibe la acción de solicitud de invocación, finaliza la transacción con una acción de respuesta de invocación que incluye lo siguiente:

  • Invoke Responses: Es una lista de respuestas o estados de comandos para cada solicitud de invocación enviada.
  • ID de interacción: Es un número entero que se usa para hacer coincidir la acción de respuesta de invocación con la acción de solicitud de invocación.

Restricciones de invocación sin tiempo

La acción Invoke Request Action puede ser un envío a un grupo, pero, en este caso, se debe establecer la marca Suppress Response. El motivo es que, de lo contrario, la red podría verse inundada por respuestas simultáneas de cada miembro de un grupo.

Para habilitar este comportamiento, la ruta de acceso que se usa en la lista de solicitudes de invocación puede contener grupos o comodines, pero solo en el campo Endpoint. Además, si la acción es de transmisión grupal, esta transacción finaliza sin respuesta.

Transacciones de invocación programadas

Al igual que las transacciones de escritura cronometradas, las transacciones de invocación cronometradas también comienzan con la acción de solicitud cronometrada.

Secuencia de operaciones de una transacción de invocación cronometrada
Figura 2: Transacción de invocación programada

Acción de solicitud cronometrada

Dirección: Iniciador -> Destino

Un iniciador comienza la transacción enviando esta acción que contiene lo siguiente:

  • Tiempo de espera: Indica cuántos milisegundos puede permanecer abierta esta transacción. Durante este período, se considerará válida la próxima acción que envíe el Iniciador.

Una vez que se recibe la acción de solicitud cronometrada, el destino debe confirmar la acción con una acción de respuesta de estado. Una vez que el iniciador recibe una acción de respuesta de estado que no informa errores, enviará una acción de solicitud de invocación.

Invoca la acción de solicitud

Es igual a la acción Invoke Request Action descrita anteriormente.

Invocar acción de respuesta

Es igual a la acción de respuesta de invocación descrita anteriormente.

Restricciones de invocación programadas

Todos los comandos de invocación se pueden llamar en una interacción cronometrada. Las acciones Timed Request Action, Invoke Request Action y Invoke Response Action son solo de Unicast y, por lo tanto, no se pueden usar como transmisiones grupales en transacciones de invocación cronometradas.

La acción Invoke Request admite el uso de rutas de acceso con grupos y comodines, pero la acción Invoke Response no admite el uso de comodines.