Ajustando a Detecção da Perda de Conexão do Banco de Dados

Se um mecanismo do sistema de mensagens estiver configurado para usar o armazém de dados e não puder se conectar a ele, por exemplo, porque o banco de dados que contém o armazém de dados não está em execução, o mecanismo do sistema de mensagens não será iniciado. Você pode ajustar o sistema para aumentar a chance de um início bem-sucedido do mecanismo do sistema de mensagens.

Sobre Esta Tarefa

Em um ambiente de servidor único, ao iniciar o servidor de aplicativos, o mecanismo do sistema de mensagens tenta iniciar. Se o banco de dados estiver indisponível por mais de 15 minutos, o mecanismo do sistema de mensagens poderá entrar no estado interrompido e precisar ser iniciado manualmente.

Em um ambiente de alta disponibilidade, um mecanismo do sistema de mensagens é iniciado como parte da inicialização do servidor ou do cluster ou como parte do processo de failover. Durante a inicialização, o mecanismo do sistema de mensagens tenta se conectar ao armazém de dados, por padrão, por até 15 minutos. Se uma das seguintes instruções permanecer true durante esse período, o mecanismo do sistema de mensagens não poderá ser iniciado no servidor e o servidor será desativado para a alta disponibilidade:
  • O banco de dados está indisponível ou não está em execução.
  • Em uma situação de failover, o banco de dados não detecta a perda da conexão da rede com o servidor de aplicativos original e, portanto, não libera os bloqueios do armazém de dados.
Esse estado desativado pode se propagar para todos os membros do cluster. Você deverá reativar, manualmente, os servidores para manter o ambiente de alta disponibilidade.

Você pode aumentar a chance de o mecanismo do sistema de mensagens ser iniciado com êxito ao configurar diversos parâmetros, tais como o tempo limite padrão de 15 minutos, no servidor de banco de dados ou do servidor de aplicativos.

Procedimento

  1. No servidor de banco de dados, configure o sistema operacional para minimizar a quantidade de tempo usada para detectar a perda de uma conexão de rede com um servidor de aplicativos. Consulte a documentação, para obter detalhes do sistema operacional. Por exemplo, a seguinte tabela lista os parâmetros relevantes para os sistemas operacionais Windows e AIX:
    Tabela 1. Parâmetros TCP/IP. A primeira coluna da tabela fornece a lista de parâmetros TCP/IP para os sistemas operacionais Windows. A segunda coluna da tabela fornece a lista de parâmetros TCP/IP para os sistemas operacionais AIX. A terceira coluna fornece a descrição dos parâmetros.
    Nome do parâmetro nos sistemas operacionais Windows Nome do parâmetro nos sistemas operacionais AIX Descrição
    KeepAliveTime tcp_keepidle A quantidade de tempo (em milissegundos nos sistemas operacionais Windows e 0,5 segundos nos sistemas operacionais AIX) a aguardar antes de enviar um pedido keepalive para uma conexão inativa.
    KeepAliveInterval tcp_keepintvl A quantidade de tempo (em milissegundos nos sistemas operacionais Windows e 0,5 segundos nos sistemas operacionais AIX) a aguardar por uma resposta.
    TCPMaxDataRetransmissions tcp_keepcnt O número de pedidos a enviar antes de terminar a conexão.
    Você pode calcular a quantidade total de tempo usada para que o servidor de banco de dados detecte a falha na conexão com o servidor de banco de dados, usando a seguinte fórmula:

    tempo para detectar a falha na conexão = tempo de keep-alive + (intervalo de keep-alive x número de pedidos)

    Por exemplo, para um sistema Windows com os parâmetros configurados de acordo com a seguinte tabela, a quantidade total de tempo usada para que o servidor de banco de dados detecte a falha na conexão com o servidor de banco de dados é 350 segundos.
    Tabela 2. Valores de parâmetro de exemplo. A primeira coluna fornece os nomes dos parâmetros. A segunda coluna fornece um valor de amostra para os parâmetros.
    Parâmetro Valor
    KeepAlive 300000 milissegundos
    KeepAliveInterval 10000 milissegundos
    TCPMaxDataRetransmissions 5
    O produto do banco de dados também pode conter parâmetros relevantes que podem ser configurados, por exemplo o parâmetro IDLE THREAD TIMEOUT no DB2 para z/OS.

    Quando o servidor de banco de dados detecta a perda da conexão com o servidor de aplicativos, o banco de dados libera os bloqueios no armazém de dados. O mecanismo do sistema de mensagens pode, agora, acessar o armazém de dados e pode, portanto, iniciar com êxito.

  2. No servidor de aplicativos, ajuste o mecanismo do sistema de mensagens para aguardar por um período de tempo razoável para que o armazém de dados torne-se disponível. Por padrão, o mecanismo do sistema de mensagens tentará se conectar ao armazém de dados a cada 2 segundos, por 15 minutos. Conclua o restante desta etapa se desejar ajustar essas sincronizações.
    1. Clique em Integração de serviços -> Barramentos -> bus_name -> [Topologia] Mecanismos do sistema de mensagens -> engine_name -> [Propriedades Adicionais] Propriedades Customizadas para navegar até o painel de propriedades customizadas para o mecanismo do sistema de mensagens.
    2. Clique em Novo(a).
    3. Digite sib.msgstore.jdbcInitialDatasourceWaitTimeout no campo Nome e no valor apropriado no campo Valor. Essa propriedade é o tempo, em milissegundos, a aguardar para que armazém de dados torne-se disponível. O valor padrão é 900000 (15 minutos). Esse horário inclui o tempo necessário para estabelecer uma conexão com o banco de dados e para obter os bloqueios de tarefa necessários.

      Certifique-se de o valor dessa propriedade ser maior do que o tempo total que o servidor de banco de dados leva para detectar a perda de uma conexão de rede, conforme configurado na Etapa 1.

    4. Clique em OK.
    5. Clique em Novo(a).
    6. Digite sib.msgstore.jdbcStaleConnectionRetryDelay no campo Nome e no valor apropriado no campo Valor. Essa propriedade é o tempo, em milissegundos, a aguardar entre tentativas para se conectar ao armazém de dados. O valor padrão é 2000 (2 segundos). Por exemplo, se configurar a propriedade sib.msgstore.jdbcInitialDatasourceWaitTimeout como 600000 e a propriedade sib.msgstore.jdbcStaleConnectionRetryDelay como 3000, o mecanismo do sistema de mensagens tentará se conectar a cada 3 segundos, até passar 10 minutos.
    7. Clique em OK.
    8. Salve suas alterações na configuração principal.
    9. Reinicie o servidor de aplicativos.
    10. Se tiver um cluster, repita as etapas anteriores para incluir essas propriedades em cada mecanismo do sistema de mensagens no cluster.

Resultados

Ao configurar esses parâmetros e as propriedades customizadas, você minimiza a quantidade de tempo usada para que o servidor de banco de dados detecte a perda de uma conexão de rede e garante que o mecanismo do sistema de mensagens aguarde por uma quantidade de tempo razoável para que a conexão com o banco de dados seja recuperada, antes de tentar iniciar.

O que Fazer Depois

É provável que deseje configurar o mecanismo do sistema de mensagens e o servidor para que sejam reiniciados no caso de uma falha na conexão com o banco de dados. Esse comportamento reduz o risco de o mecanismo do sistema de mensagens estar em um estado inconsistente quando a conexão com o banco de dados for restaurada.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjm_tunedbconn
Nome do arquivo: tjm_tunedbconn.html