Artigo: 137983 - Última revisão: quinta-feira, 30 de Abril de 2009 - Revisão: 5.0

Como resolver problemas de isolado ligações no SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Quando um cliente do Microsoft SQL Server se desliga do SQL server, o processo de ligação deve ser desmarcado no lado do servidor. Se os processos de ligação não são desmarcados por qualquer motivo, podem tornar-se "isoladas" ou "fantasmas" processos. Estes processos podem utilizar recursos importantes, tais como bloqueios e ligações de utilizadores. Os processos isolados normalmente causados por incorrecto fecho das aplicações de cliente e problemas relacionados com a rede e as soluções requerem normalmente resolver problemas de aplicações de cliente e fino-optimização configurações de rede.

Mais Informação

Quando resolver este problema, tenha em atenção o seguinte:
  • SQL Server como uma aplicação não e não deve proactivamente a pesquisar a ligação de cliente para determinar o respectivo estado actual. Inferior comunicações Inter-Process nível (IPCs), como pipes nomeados, IPX/SPX ou sockets de TCP/IP, são responsáveis por gerir as ligações de cliente.
  • Um IPC tem normalmente o seu próprio mecanismo para gerir as ligações de cliente. Quando as ligações de cliente ficarem deixasse de responder durante um determinado período de tempo, normalmente computador com o Windows NT Server irá ou detectar isto enviando as sondas dos "manter activo" ou limpe a ligação depois estiver inactivo durante um período de tempo configurado. No entanto, os pacotes "keep-alive" não são enviados por predefinição por uma aplicação. A aplicação tem de activar esta funcionalidade na respectivas ligações.
  • Em determinadas situações como, por exemplo, erro de protecção geral do cliente, o cliente ainda pode responder a sondas dos servidor, mesmo se a aplicação estiver inactiva. Neste caso, o computador com Windows NT Server pode manter esta ligação de cliente indefinidamente, desde que o cliente não for encerrado.
  • Se um computador com o Windows NT Server não fecha uma ligação inactiva por qualquer motivo, SQL Server assume que rightfully esta ligação ainda está activa e, por isso, não limpa-lo.
  • Se computador com o Windows NT Server com êxito fechou a ligação, mas o processo cliente continua a existir no SQL Server conforme indicado pelo sp_who, poderá indicar um problema com o SQL Server gestão da ligação. Neste caso, deve trabalha com o fornecedor de suporte principal para resolver este problema.
Se suspeitar que existem processos isolados no SQL Server, seguem-se passos que pode tomar para resolver o problema:
  1. Identifica os processos isolados utilizando sp_who, pode indicar as aplicações que estavam associadas a estes processos através de nomes de anfitrião.
  2. Depois de identificar estes processos isolados, pode escolher para ignorá-los se estes não são mantendo quaisquer bloqueios ou utilizar muitas ligações ou kill-los utilizando o comando Eliminar do SQL Server.
  3. Contacte os utilizadores de aplicações para quaisquer procedimentos incorrectos das aplicações de fecho, como quente ou frio reiniciado de estações de trabalho sem sair primeiro as aplicações. Verifique se existe qualquer histórico de estação de trabalho se tornar instável, tal como uma falha de protecção geral e por aí em diante. Corrigir esses procedimentos incorrectos ou problemas de estabilidade que existam.
  4. Verifique se a sessão IPC activa no Windows NT Server computador onde o SQL Server está a ser executado. Consoante os IPCs que estiver a utilizar, os comandos são diferentes. Por exemplo, se estiver a utilizar pipes nomeados, o comando é "NET SESSION" ou "NET FILES"; Se for um TCP/IP sockets de ligação, pode utilizar "NETSTAT" para apresentar TCP activa sessões; em caso de IPX/SPX, poderá ter de utilizar o Monitor de desempenho para monitorizar as 'Ligações de abrir"para"NWLink SPX".
  5. Se as sessões IPC ainda estão activas no computador com o Windows NT Server, é perfeitamente normal para o SQL Server manter os processos de ligação. Quando limpa do Windows NT mais sessões IPC, SQL Server será notificado e desactivar os processos de ligação em conformidade. Poderá ajustar certos parâmetros de rede do Windows NT para reduzir o período de tempo que Windows NT tem de aguardar antes de limpar até as sessões de inactividade.

    Novamente, dependendo IPCs estiver a utilizar, os parâmetros envolvidos são muito diferentes.Para mais informações, clique no número de artigo seguinte como modificar estas definições de registo para corresponder aos mencionados abaixo para visualizar o artigo como modificar estas definições de registo para corresponder aos mencionados abaixo na base de dados de conhecimento da Microsoft:
    120642  (http://support.microsoft.com/kb/120642/ ) Parâmetros de configuração de TCP/IP e NetBT para o Windows 2000 ou Windows NT
    99745  (http://support.microsoft.com/kb/99745/ ) Optimizar parâmetros de registo NWLINK
    • Pipes nomeados: Encaminhamentos com nome são implementados na camada de SMB (Server Message Block) na parte superior da outros protocolos de transporte como o TCP/IP, NetBEUI ou NWLink IPX/SPX. Uma camada fina, denominada NetBIOS é normalmente implementada entre o SMB e a camada de transporte. Assim, é uma forma conveniente de ajustar quanto um deixasse de responder pipes nomeados sessão tem de aguardar antes de ser fechado a ajustar os parâmetros de KeepAlive da camada de NetBIOS relevante. Para TCP/IP, a camada da NetBIOS envolvida é NBT (NetBIOS através de TCP) e o parâmetro envolvido é SessionKeepAlive na seguinte chave do registo:
               KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters
           
      								
      se o protocolo utilizado é NWlink IPX/SPX, os parâmetros envolvidos são KeepAliveCount e KeepAliveTimeout na seguinte chave do registo:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNBLink\Parameters
           
      								
      Tenha em atenção que algumas implementações de encaminhamentos com nome através de NWLink poderão ignorar a camada de NetBIOS (DirectHosting), que significa que os parâmetros de NWNBlink NetBIOS acima não se aplicam.
    • Sockets de TCP/IP: Windows NT Server periodicamente enviará "manter pacotes activos para clientes e os clientes devem responder. Se por qualquer razão que o cliente não responder a esses pacotes, o Windows NT limpa a sessão de TCP depois de tentar um número configurado de vezes. Os parâmetros envolvidos são KeepAliveInterval, KeepAliveTime e TcpMaxDataRetransmissions na seguinte chave do registo:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
           
      								
    • IPX/SPX: Semelhante para TCP/IP, Windows NT Server periodicamente envia "keep alive" pacotes e os clientes respondem. Windows NT limpa ligações SPX se não conseguir receber quaisquer respostas depois de enviar um número configurado de pacotes "manter activo". Os parâmetros envolvidos são KeepAliveCount e KeepAliveTimeout na seguinte chave do registo:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWLnkSPX\Parametes
           
      								
    Tenha em atenção que, se os parâmetros "manter activo" para os IPCs estiverem configurados para nunca tempo de espera, Windows NT irá manter as sessões IPC indefinidamente, mesmo que os clientes são completamente encerrados. Neste caso, SQL Server irá manter estes processos cliente indefinidamente bem, que é esperado.

    Para mais informações sobre os parâmetros, consulte a documentação do Windows NT ou Windows NT Resource Kit. Se suspeitar que o computador do Windows NT Server não cópia desmarque as sessões de acordo com os parâmetros de configuração, pode contactar o Windows NT principal suportar fornecedor para obter ajuda.
  6. Se a sessão IPC deixou de existir no computador com o Windows NT Server, mas do SQL Server mantém ainda processo cliente tal como mostrado pelo sp_who, pode utilizar o comando KILL para limpar o processo como uma solução temporária e contacte o principal fornecedor de suporte do SQL Server para obter mais assistência.
Para obter informações adicionais sobre este assunto como se relaciona com para o SQL Server 2000, consulte o tópico "Isolado sessões" no SQL Server Books Online.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbmt kbhowto kbinfo kbusage KB137983 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 137983  (http://support.microsoft.com/kb/137983/en-us/ )