Configurando keepalives com comunicação do cliente TOAD

1

Eu tenho um cenário em que sessões de ociosidade longa da TOADSoft comunicação do cliente com o servidor Oracle parecem ser demolidas conforme o tempo limite é esgotado um firewall intermediário de estado completo.

Essas sessões podem ficar inativas por várias horas!
Não é aceitável aumentar o tempo limite no firewall globalmente e claro, não suporta tempos limite mais longos para fluxos específicos.

Eu consertei esse problema para conexões ociosas do PuTTY; permite um keep-alive configurável .

Mas ainda não identifiquei esse suporte no software TOAD.

Analisando um pouco as configurações de todo o sistema, desenvolvi esse detalhe do Microsoft TechNet sobre Configurando o sistema Amplo Keep-Alives que envolve o trabalho com o KeepAliveTime e variáveis de registro relacionadas.

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime

Isso parece ser a configuração ampla do sistema Linux para usar o keep-alive em todo o sistema . < br> Mas, isso requer que os programas usem o setsockopt() e solicitem keep-alive (certo?).

Remember that keepalive support, even if configured in the kernel, is not the default behavior in Linux. Programs must request keepalive control for their sockets using the setsockopt interface. There are relatively few programs implementing keepalive...

Perguntas

  1. Posso usar esta técnica KeepAliveTime nas máquinas clientes do Windows ou talvez o servidor ?
    (alguém já tentou?)
    • Existe alguma outra maneira de manter essas conexões TOAD ativas (de qualquer extremidade da comunicação)?
por nik 13.07.2009 / 17:53

3 respostas

1

Defina o valor de SQLNET.EXPIRE_TIME em sqlnet.ora.

Veja o que o manual da Oracle diz sobre este assunto:

Finalidade

Use o parâmetro SQLNET.EXPIRE_TIME para especificar o intervalo de tempo, em minutos, para enviar uma análise para verificar se as conexões cliente / servidor estão ativas. Definir um valor maior que 0 garante que as conexões não sejam deixadas abertas indefinidamente, devido a uma finalização anormal do cliente. Se o probe encontrar uma conexão terminada ou uma conexão que não esteja mais em uso, ele retornará um erro, fazendo com que o processo do servidor seja encerrado. Esse parâmetro é destinado principalmente ao servidor de banco de dados, que normalmente lida com várias conexões a qualquer momento.

As limitações em usar este recurso de detecção de conexão finalizada são:

  • Não é permitido em conexões legadas.
  • Embora muito pequeno, um pacote de sondagem gera tráfego adicional que pode degradar o desempenho da rede.
  • Dependendo de qual sistema operacional está em uso, o servidor pode precisar executar processamento adicional para distinguir o evento de sondagem de conexão de outros eventos que ocorrem. Isso também pode resultar em degradação do desempenho da rede.

Padrão : 0

Valor mínimo : 0

Valor recomendado : 10

Exemplo

SQLNET.EXPIRE_TIME=10

    
por 20.07.2009 / 20:53
1

Você tem acesso SSH? Você pode configurar um túnel & enviar a comunicação SQL sobre isso.

TOAD: servidor (ou tnsnames) torna-se localhost, porta de escuta é alguma porta aleatória, como 12346
PuTTY: encaminhamento de porta. porta de origem: 12346, destino: $ REMOTE_IP: 1521. Deixe como uma porta local.

Certifique-se de ativar keep-alive TCP no PuTTY através da seção Conexão.

    
por 20.07.2009 / 21:16
1

Encontrei isso no site da Dell e confirmei que funciona (no Toad 11.5.0.56): O Toad tem uma configuração keep alive / intervalo de tempo / ping para que a rede não expire? (49507)

Para resumir - Ligue a Saída na janela Saída do DBMS clicando no ícone do botão vermelho à esquerda da barra de menus Saída do DBMS (ela ficará verde). Você pode acessar isso na guia Saída do DBMS, ao lado da guia Grade de dados, ou através da visualização - > Saída DBMS.

Isso também ativará automaticamente a pesquisa. Na minha experiência, você precisa tanto da saída do DBMS quanto da Polling ativada para manter a conexão.

    
por 29.07.2015 / 17:59