SQL Server clients kunnen protocollen wijzigen wanneer de clientcomputers verbinding proberen te maken met een exemplaar van SQL Server

In dit artikel wordt beschreven SQL Server clients protocollen kunnen wijzigen wanneer de clientcomputers verbinding proberen te maken met een exemplaar van SQL Server.

Originele productversie: SQL Server
Origineel KB-nummer: 328383

Samenvatting

Clientcomputers met MDAC-versie 2.6 (Microsoft Data Access Components) of hoger kunnen meerdere protocollen of IPC-mechanismen (Interprocess Communication) proberen om verbindingen met SQL Server tot stand te brengen.

Meer informatie

Er is een verbeteringen aangebracht in de netwerkbibliotheek aan de clientzijde, Dbnetlib.dll voor MDAC-versie 2.6 en hoger. Met MDAC versie 2.6 en hoger, als er meerdere protocollen beschikbaar zijn en een verbindingspoging met het eerste protocol mislukt, probeert de clienttoepassing onmiddellijk een van de andere protocollen te gebruiken.

Standaard hebben clients TCP en Named Pipes als beschikbare protocollen. U kunt de volgorde van het protocol bewerken met behulp van het hulpprogramma SQL Server Client. De clienttoepassing gebruikt de protocollen in de volgorde die op de clientcomputer is opgegeven. De protocolvolgorde wordt opgeslagen op de volgende registersleutellocatie onder de waarde ProtocolOrder:

HKLM\Software\Microsoft\MSSQLServer\Client\SuperSocketNetLib

Als u SQL Server 2005 gebruikt, wordt de protocolvolgorde opgeslagen in de registervermelding ProtocolOrder onder de volgende registersubsleutel:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI<version>

Als op een clientcomputer bijvoorbeeld zowel TCP als Named Pipes beschikbaar zijn en de volgorde is:

  • TCP
  • Named Pipes

Wanneer de clientcomputer probeert een TCP-verbinding met de server te maken en de verbindingspoging een niet-nul retourcode retourneert, probeert de client transparant een verbinding te maken met behulp van het volgende protocol in de lijst, namelijk Named Pipes. In dit scenario kan de client geen TCP-verbinding maken; De client maakt echter een Named Pipes-verbinding.

Opmerking

De client ontvangt geen fout die aangeeft dat het eerste protocol is mislukt.

Als de clienttoepassing het tweede protocol gebruikt en ook een fout retourneert, wordt er een fout geretourneerd naar de client.

Als u een alias maakt met behulp van een van de volgende methoden, gebruikt de clienttoepassing de aliasgegevens om een verbinding met de server tot stand te brengen en worden er geen aanvullende protocollen gebruikt.

  • Met behulp van het hulpprogramma SQL Server ClientNetwerk
  • Met behulp van SQL Server Configuration Manager
  • Wanneer u een ODBC-gegevensbronnaam (DSN) maakt

Als u het protocol wilt beheren dat een clienttoepassing gebruikt voor elke verbindingspoging en niet wilt toestaan dat de client meerdere protocollen probeert, kunt u een van de volgende handelingen uitvoeren:

  • Gebruik het hulpprogramma SQL Client Network of SQL Server Configuration Manager om een alias te maken door het gewenste protocol op te geven.

  • Geef het protocol op in uw verbindingsreeks. Bijvoorbeeld:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBMSSOCN;Address=IP_Address,1433;UID=YourUID;PWD=YourPassword;
    

    In dit voorbeeld geeft u het netwerkprotocol op als DBMSSOCN, wat betekent dat u het TCP/IP-protocol wilt gebruiken. Als u het protocol in uw verbindingsreeks opgeeft, gebruikt Dbnetlib alleen het opgegeven protocol en wordt er geen ander protocol geprobeerd. Als u alleen het Named Pipe-protocol wilt inschakelen, gebruikt u een verbindingsreeks vergelijkbaar met dit:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBNMPNTW;Address=\\.\pipe\sql\query;UID=YourUID;PWD=YourPassword;
    
  • Gebruik het hulpprogramma Clientnetwerk om andere protocollen te verwijderen.

VERWIJZINGEN

Connectiviteitsfouten met SQL Server oplossen