Accedi a Microsoft
Accedi o crea un account.
Salve,
Select a different account.
Hai più account
Scegli l'account con cui vuoi accedere.

Riepilogo

Quando un client di Microsoft SQL Server si disconnette da un server SQL Server, il processo di connessione deve essere chiarito sul lato server. Se i processi di connessione non vengono eliminati per qualsiasi motivo, diventano processi "orfani" o "Ghost". Questi processi possono usare risorse preziose come blocchi e connessioni utente. I processi orfani sono in genere causati da una chiusura errata delle applicazioni client e da problemi correlati alla rete e i rimedi richiedono in genere la risoluzione di problemi relativi alle applicazioni client e le configurazioni di rete a fine tuning.

Ulteriori informazioni

Quando si risolve questo problema, tieni presente quanto segue:

  • SQL Server come applicazione non e non deve sondare in modo proattivo la connessione client per determinare lo stato corrente. Le comunicazioni tra processi di livello più basso (IPCs), come le named pipe, i socket IPX/SPX o TCP/IP, sono responsabili della gestione delle connessioni client.

  • Un IPC ha in genere un meccanismo personalizzato per gestire le connessioni client. Quando le connessioni client diventano non rispondenti per un determinato periodo di tempo, in genere il computer Windows NT Server rileverà questo messaggio inviando le sonde "Keep Alive" oppure chiarirà la connessione dopo che è inattivo per un periodo di tempo configurato. Tuttavia, i pacchetti "Keep-Alive" non vengono inviati per impostazione predefinita da un'applicazione. L'applicazione deve abilitare questa funzionalità sulle connessioni.

  • In determinate situazioni, ad esempio errore di protezione generale client, il client può comunque rispondere ai probe del server anche se l'applicazione è già morta. In questo caso, il computer Windows NT Server può tenere la connessione client a tempo indeterminato, purché il client non venga arrestato.

  • Se un computer Windows NT Server non chiude una connessione non consentita per qualsiasi motivo, SQL Server presuppone giustamente che la connessione sia ancora attiva e quindi non la chiarisca.

  • Se il computer Windows NT Server ha chiuso correttamente la connessione, ma il processo client esiste ancora in SQL Server, come indicato da sp_who, può indicare un problema con la gestione delle connessioni di SQL Server. In questo caso, è consigliabile collaborare con il provider di supporto principale per risolvere il problema.

Se si sospetta che i processi orfani siano presenti in SQL Server, è possibile eseguire le operazioni seguenti per risolvere il problema:

  1. Identifica i processi orfani usando sp_who, che potrebbero indicare le applicazioni associate a questi processi tramite i nomi host.

  2. Dopo aver identificato questi processi orfani, è possibile scegliere di ignorarli se non si bloccano o si usano molte connessioni o li uccidono usando il comando KILL di SQL Server.

  3. Consulta gli utenti dell'applicazione per qualsiasi procedura non corretta di chiusura delle applicazioni, ad esempio il riavvio caldo o freddo delle workstation senza uscire prima dalle applicazioni. Verificare se la cronologia della workstation diventa instabile, ad esempio un errore di protezione generale e così via. Correggere le procedure improprie o i problemi di stabilità se esistenti.

  4. Verificare che la sessione IPC sia ancora attiva nel computer Windows NT Server in cui è in uso SQL Server. A seconda della IPCs in uso, i comandi sono diversi. Ad esempio, se si usano named pipe, il comando è "NET SESSION" o "NET FILES"; Se si tratta di una connessione TCP/IP Sockets, è possibile usare "netstat" per visualizzare le sessioni TCP attive; in caso di IPX/SPX, potrebbe essere necessario usare monitor prestazioni per monitorare le "connessioni aperte" per "NWLink SPX".

  5. Se le sessioni IPC sono ancora attive nel computer Windows NT Server, è perfettamente normale che SQL Server mantenga tali processi di connessione. Quando Windows NT Cancella le sessioni IPC, SQL Server riceverà una notifica e cancellerà i processi di connessione di conseguenza. Potresti essere in grado di modificare determinati parametri di rete di Windows NT per accorciare il periodo di tempo che Windows NT deve attendere prima di chiarire le sessioni morte. Anche in questo caso, a seconda del IPCs in uso, i parametri in questione sono molto diversi.Per altre informazioni, fare clic sul numero dell'articolo seguente come modificare queste impostazioni del registro di sistema in modo che corrispondano a quelle elencate di seguito per visualizzare l'articolo su come modificare queste impostazioni del registro di sistema per corrispondere a quelle elencate di seguito nella Microsoft Knowledge Base:

    120642 Parametri di configurazione TCP/IP e NetBT per Windows 2000 o Windows NT

    99745 Ottimizzazione di parametri del registro di sistema NWLINK

    • Named pipe: le named pipe vengono implementate nel layer SMB (Server Message Block) sopra ad altri protocolli di trasporto, ad esempio TCP/IP, NetBEUI o NWLink IPX/SPX. Un livello sottile denominato NetBIOS viene in genere implementato tra il protocollo SMB e il livello di trasporto. Di conseguenza, un modo pratico per regolare la durata di una sessione di named pipe non reattiva deve attendere prima di essere chiuso è regolare i parametri KeepAlive del layer NetBIOS pertinente. Per TCP/IP, il layer NetBIOS in questione è NBT (NetBIOS su TCP) e il parametro in questione è SessionKeepAlive nella chiave del registro di sistema seguente: KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters Se il protocollo usato è NWlink IPX/SPX, i parametri implicati sono KeepAliveCount e KeepAliveTimeout nella chiave del registro di sistema seguente: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNBLink\Parameters Tieni presente che alcune implementazioni di pipe denominate su NWLink possono aggirare il layer NetBIOS (DirectHosting), che indica che i parametri NetBIOS sopra NWNBlink non si applicano.

    • Socket TCP/IP: Windows NT Server invierà periodicamente "Mantieni i pacchetti in vita ai client e i client dovrebbero rispondere. Se per qualsiasi motivo il client non risponde a tali pacchetti, Windows NT Cancella la sessione TCP dopo aver tentato un numero di volte configurato. I parametri in questione sono KeepAliveInterval, KeepAliveTime e TcpMaxDataRetransmissions nella chiave del registro di sistema seguente: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    • IPX/SPX: Analogamente a TCP/IP, Windows NT Server invia periodicamente i pacchetti "Keep Alive" e i client rispondono. Windows NT Cancella le connessioni SPX se non riceve le risposte dopo l'invio di un numero configurato di pacchetti "Keep Alive". I parametri in questione sono KeepAliveCount e KeepAliveTimeout nella chiave del registro di sistema seguente: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWLnkSPX\Parametes

    Tieni presente che se i parametri "Mantieni in vita" per il tuo IPCs sono configurati per non avere mai un timeout, Windows NT manterrà le sessioni IPC indefinitamente, anche se i client vengono completamente arrestati. In questo caso, SQL Server manterrà questi processi client anche a tempo indeterminato, come previsto. Per altre informazioni sui parametri, vedere la documentazione di Windows NT o il Resource Kit di Windows NT. Se si sospetta che il computer Windows NT Server non elimini tali sessioni in base ai parametri di configurazione, è possibile contattare il provider di supporto principale di Windows NT per assistenza.

  6. Se la sessione IPC non è più presente nel computer Windows NT Server, ma SQL Server mantiene ancora il processo client come illustrato da sp_who, è possibile usare il comando KILL per cancellare il processo come soluzione temporanea e contattare il provider di supporto di SQL Server principale per assistenza.

Per altre informazioni su questo argomento in relazione a SQL Server 2000, vedere l'argomento "sessioni orfane" nella documentazione online di SQL Server.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×