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 procedimientos remotos 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 con y sin tiempo. Consulta la sección Acciones con y sin tiempo para obtener más información sobre las transacciones con tiempo.

Transacción de invocación sin tiempo

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

Cómo invocar la acción de solicitud

Dirección: Iniciador -> Destino

Al igual que en las acciones de solicitud de lectura y de solicitud de escritura, en esta acción, el iniciador proporciona al objetivo lo siguiente:

  • Solicitudes de invocación: Es una lista de rutas a los comandos de clúster, así como argumentos opcionales para los comandos, denominados campos de comando.
  • Solicitud con temporizador: Es una marca que indica si esta acción forma parte de una transacción de invocación con temporizador.
  • Suppress Response: Es una marca que indica si se debe suprimir la acción Invoke Response.
  • 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 objetivo reciba la acción de solicitud de invocación, finalizará la transacción con una acción de respuesta de invocación que contiene lo siguiente:

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

Restricciones de invocación sin tiempo

La acción de solicitud de invocación puede ser una transmisión grupal, 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 todos los miembros 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 de extremo. Además, si la acción es de transmisión grupal, esta transacción finaliza sin respuesta.

Transacciones de invocación con marca de tiempo

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

Secuencia de operaciones de una transacción de invocación con tiempo
Figura 2: Tiempo de transacción de invocación

Acción de solicitud programada

Dirección: Iniciador -> Destino

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

  • Timeout: Indica cuántos milisegundos puede permanecer abierta esta transacción. Durante este período, la siguiente acción que envíe el iniciador se considerará válida.

Una vez que se recibe la acción de solicitud programada, el objetivo debe confirmarla con una acción de respuesta de estado. Una vez que el iniciador reciba una acción de respuesta de estado que no informe errores, enviará una acción de solicitud de invocación.

Cómo invocar la acción de solicitud

Es igual que la acción Invoke Request que se describió anteriormente.

Invocar acción de respuesta

Es igual que la acción Invocar respuesta que se describió anteriormente.

Restricciones de invocación con tiempo

Se puede llamar a todos los comandos de invocación en una interacción cronometrada. La acción de solicitud programada, la acción de solicitud de invocación y la acción de respuesta de invocación solo son para Unicast y, por lo tanto, no se pueden usar como transmisión grupal en las transacciones de invocación programadas.

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