Cotas de transação

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • As cotas de transação permitem que você defina uma política de cota para diferentes tipos de transações. Uma cota de transação cancela qualquer transação que viole a política e notifica o usuário sobre o cancelamento.

    O plug-in Cotas de transação está ativo por padrão em todas as instâncias novas e atualizadas.
    Figura 1. Transação cancelada
    Transação cancelada
    A cota de transação também grava a mensagem de cancelamento no arquivo de log como um aviso.
    Figura 2. Log de transação cancelada
    Log de uma transação cancelada

    Normalmente, os administradores definem cotas de transação para impedir que consultas e scripts com desempenho insatisfatório consumam recursos do sistema. Isso garante que nenhuma transação consuma recursos suficientes para impedir a execução de outras transações. Os administradores também podem exibir mensagens de log de cancelamento para identificar transações que podem consumir recursos excessivos.

    Como as cotas de transação funcionam

    As transações usam o Gerenciador de cota, que é um thread em segundo plano que cancela transações. O Gerenciador de cota executa as seguintes ações.
    1. Obtém uma lista de transações ativas, semelhante à lista em Administração de usuários > Transações Ativas.
    2. Percorre cada transação e verifica todas as regras de cota com condições correspondentes à transação. A primeira ocorrência que excede qualquer uma das limitações de cota aciona um cancelamento de transação. Se uma transação mudar ou houver uma nova regra de cota, o Gerenciador de cota reavalia a transação.
      Nota:
      O campo Ordem em uma regra de cota afeta a ordem na qual as regras de cota são verificadas. O Gerenciador de cota verifica as regras de ordem inferior primeiro (por exemplo, ordem 80 antes da ordem 90), mas, por fim, verifica todas as regras. Isso pode ter implicações de desempenho mínimas, dependendo das condições das regras envolvidas.
    3. Cancela a transação se ela estiver em execução há mais tempo do que a cota máxima especificada.
    4. Registra em log as transações em execução.
    5. Adormece até a próxima pulsação, que é controlada pela glide.quota.manager.heartbeat propriedade do sistema.

    Exemplos de cancelamento de transação

    As transações podem ser canceladas por mais de um motivo. Procure os seguintes indicadores.

    • tempo máximo de execução excedido: esta mensagem aparece quando os threads glide.quota.manager cancelam a transação.
    • Cancelado por outra transação: esta mensagem aparece quando a transação foi cancelada pelo thread de sessão que a emitiu inicialmente, e não pelo thread glide.quota.manager.
    • cancelado por solicitação do usuário: esta mensagem aparece quando o usuário clica no botão X vermelho para cancelar a transação em execução.
    Se você estiver procurando por transações que foram canceladas por glide.quota.manager, pesquise a combinação [Mensagem] [Contém] [tempo máximo de execução excedido]. Por exemplo:
    Cancelling transaction /home.do - Default-thread-11.0 (maximum execution time exceeded): Thread Default-thread-11.0 (Default-thread-11.0, F530DD111B11111111FC031767DA158E), after 30000ms
    .