Transacción pendiente

Durante el funcionamiento normal de los HSM y con todos los nodos funcionando con normalidad, no debería haber demasiadas situaciones de Transacción Pendiente. Se trata de transacciones de replicación que, por algún motivo, han iniciado el protocolo de transacciones distribuidas(Two Phase Commit) pero que no pueden completarse. Una transacción pendiente implica al menos a dos nodos del pool, uno de los cuales es el coordinador y el otro un participante. En la mayoría de los casos, el propio mecanismo de replicación del HSM puede recuperarse y resolver el cuelgue que impedía completar la transacción. En otros casos, por ejemplo, un defecto de hardware o un problema de comunicación pueden requerir la intervención del operador.

                        Dinamo - Local Management Console






                       ┌──────────────┤  ├──────────────┐
                       │                                │
                       │  No pending transaction found. │
                       │                                │
                       │            ┌────┐              │
                       │            │ OK │              │
                       │            └────┘              │
                       │                                │
                       │                                │
                       └────────────────────────────────┘







  Service running...                                Replication Domain: <list>
Nodo sin replicación pendiente

Una transacción pendiente dejará todo el pool bloqueado para nuevas operaciones deescritura; las operaciones delectura continuarán normalmente.

Cuando haya una transacción, la pantalla mostrará diversa información sobre ella:

  • Ahora: fecha y hora actuales (en que se abrió la pantalla), sólo con fines informativos;
  • Fecha/Hora: fecha y hora(timestamp) en que se generó la transacción;
  • GUID: identificador único de transacción, todos los nodos implicados en una transacción replicada reconocen la transacción por el mismo identificador;
  • Estado: el estado del protocolo Tow Phase Commit en el que se detuvo la transacción;
  • Tipo: tipo de transacción, como creación o eliminación de claves, creación o eliminación de usuarios.
  • Fuente: usuario responsable de la transacción, el que realizó la solicitud inicial del servicio;
  • Destino: usuario afectado por la transacción, puede ser el mismo indicado en Origen, u otro si la transacción implica operaciones sobre una partición de usuario remota (mediante permisos);
  • Nodos: la lista de nodos conocidos por el HSM en el momento de la transacción; es con esta lista de nodos con la que el HSM intentará completar la replicación. El primer nodo de la lista es siempre el coordinador. El nodo marcado como PA(Pending Ack) es el que no ha completado la comunicación del protocolo de replicación. Este suele ser un buen punto de partida para investigar las causas del problema.
                        Dinamo - Local Management Console


         ┌─────────────────────────┤  ├─────────────────────────┐
         │                                                      │
         │  Now       : 2023-12-17 16:17:00                     │
         │  Date/Time : 2023-12-17 16:16:32                     │
         │                                                      │
         │  GUID      : 0102030405060708                        │
         │  State     : Phase 2 - Coordinator                   │
         │  Type      : Lock/Probe/Test                         │
         │  Source    : ET_NULL_USR                             │
         │  Target    : ET_NULL_OBJ                             │
         │  Nodes     : 172.17.0.3                              │
         │              172.17.0.3      - PA                    │
         │                                                      │
         │                        ┌────┐                        │
         │                        │ OK │                        │
         │                        └────┘                        │
         │                                                      │
         └──────────────────────────────────────────────────────┘



  Service running...                                Replication Domain: <list>
Información sobre una transacción pendiente

El mecanismo de replicación dispone de un servicio derecuperación automática, que de vez en cuando intentará algunas medidas, como la retransmisión, para eliminar el cuelgue y completar la transacción. El intervalo de tiempo en el que se ejecuta el servicio de recuperación automática se define en la opción Política del menú de replicación.

El motivo de la aparición de una Transacción Pendiente puede ser la mayoría de las veces algo sencillo, como un nodo con el servicio parado o un problema de comunicación con el resto del pool (cable de red, puerto de switch, enlace caído, etc.), y en ocasiones puede necesitar una investigación más profunda. Toda la información mostrada es relevante para identificar la causa y solucionar el problema.

La consola remota de HSM también puede mostrar información sobre transacciones pendientes.