Erros ao executar uma consulta ou virtualizar objetos e o agendador não está disponível

Quando você executa uma consulta ou virtualiza objetos no Data Virtualization e o agendador não está disponível, você pode receber uma mensagem de erro ou o processo pode travar ou parar de funcionar.

Sintomas

Por exemplo, você pode ver o seguinte código de SQL5197N erro SQL na interface do usuário ao executar uma consulta ou virtualizar objetos:
SQL5197N  The statement failed because of a communication error with a Big SQL component. 
Big SQL component name: "SCHEDULER". Reason code: "1"

Você também pode ver requestScanMetadata erros nos arquivos de log.

Causas

Esses erros ocorrem se o serviço de agendamento estiver indisponível.

O agendador Db2® Big SQL é um serviço que auxilia na execução de consultas. Ele se comunica com todos os componentes em Data Virtualization. O planejador fornece acesso aos metadados das tabelas Hadoop que estão envolvidas em uma varredura. Esses metadados incluem descritores de tabelas com detalhes como tipos de coluna, comprimentos de coluna, informações de partição e formato de entrada. Eles distribuem uniformemente a varredura de uma tabela Hadoop em seu cluster. O planejador também faz a eliminação de partição. Ele usa os recursos do sistema de forma eficiente para maximizar o rendimento e minimizar o tempo de resposta.

O processo do planejador pode ficar indisponível devido a restrições de memória. Quando o agendador fica sem memória, Data Virtualization ele para de funcionar no pod onde o processo do agendador está sendo executado.

Diagnosticando o Problema

Se a virtualização ou uma consulta falhar, verifique o pod db2diag.log principal (c-db2u-dv-db2u-0) para ver se há requestScanMetadata erros. A virtualização pode falhar devido à alocação insuficiente de memória para o pod hurricane, conforme mostrado no exemplo de arquivo de log a seguir:
2023-03-29-17.45.56.043984+000 I14758539E704         LEVEL: Error
PID     : 107690               TID : 140318766786304 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000            DB   : BIGSQL
APPHDL  : 0-14563              APPID: 192.168.18.141.51440.230329174517
AUTHID  : SVCCP4DSLSPROD       HOSTNAME: c-db2u-dv-db2u-0
EDUID   : 122915               EDUNAME: db2agent (BIGSQL) 0
FUNCTION: DB2 UDB, base sys utilities, sqeBigSqlSchedulerInternal::requestScanMetadata, probe:5003
MESSAGE : BigSql Scheduler Exception Occurred
DATA #1 : signed integer, 4 bytes
-5105
DATA #2 : String, 98 bytes
Incomplete-table: Front-End-Exception.  schemaName=cp4dschema tableName=table_csv. 

Resolvendo o problema

Certifique-se de alocar memória suficiente para o cache, caso contrário, o serviço de agendamento poderá travar e deixar de responder às solicitações db2 para verificar metadados.

A necessidade de memória deve ser proporcional ao volume de metadados do arquivo a ser armazenado em cache. Cada implantação é diferente. Aumente gradualmente a alocação de memória até atingir uma quantidade suficiente. O limite de memória deve ser aumentado como uma porcentagem da memória real que é alocada ao pod hurricane, que é designado estaticamente ao processo do planejador quando ele é iniciado. O requisito de memória mínima para o pod hurricane é de 2,5 Gi. Para obter mais informações, consulte Preparando-se para instalar o Data Virtualization.

  1. Para aumentar a memória, execute o comando a seguir:
    oc edit bigsql db2u-dv
  2. Edite a seção em podConfig > hurricane > resource.

    Por exemplo, a configuração a seguir aumentaria o limite de memória para o dobro do padrão.

    resource:
      hurricane:
        limits:
          cpu: 8
          memory: 5120Mi
       requests:
          cpu: 1
          memory: 2560Mi