Delen via


Driver-Aware groepsgewijze verbinding

Driver-bewuste verbindingpooling is een nieuwe functie van de Stuurprogrammabeheerder in Windows 8. Stuurprogramma-bewuste verbindingengroepering stelt schrijvers van stuurprogramma's in staat het gedrag van verbindingengroepering in hun ODBC-stuurprogramma aan te passen.

Opmerking

Stuurprogramma-bewuste verbindingpooling wordt niet ondersteund met de cursorbibliotheek. Een toepassing ontvangt een foutbericht als deze probeert de cursorbibliotheek in te schakelen via SQLSetConnectAttr, wanneer stuurprogrammabewuste verbindingspooling is ingeschakeld.

Bij stuurprogramma-bewuste verbindingenpooling worden de volgende problemen aangepakt met betrekking tot verbindingenpooling van de Stuurprogrammamanager:

Poolfragmentatie Driver Manager retourneert alleen een verbinding uit de pool als deze exact overeenkomt met de verbindingsreeks van een nieuwe verbindingsaanvraag. Een van de redenen waarom Driver Manager een exacte overeenkomst vereist, is dat driverbeheer niet elk trefwoord voor een stuurprogrammaspecifieke verbindingsreeks en de bijbehorende waarde begrijpt. Voor sommige trefwoordwaarden voor verbindingsreeksen (zoals de naam van de database) is echter mogelijk geen exacte overeenkomst vereist, omdat het stuurprogramma de database kan wijzigen in minder dan de tijd die nodig is om een nieuwe verbinding te openen (het exacte tijdsverschil is afhankelijk van de gegevensbron). En verschillen in sommige verbindingskenmerken (zoals SQL_ATTR_CURRENT_CATALOG) kunnen langer duren dan verschillen in andere kenmerken (zoals SQL_ATTR_LOGIN_TIMEOUT). Dit kan voorkomen dat Driver Manager gebruikmaakt van de goedkoopste, herbruikbare verbinding uit de pool. Wanneer een stuurprogramma veel nieuwe verbindingen moet maken, kunnen de prestaties van een toepassing afnemen en kan de schaalbaarheid van de gegevensbron afnemen. Poolfragmentatie kan worden verminderd met stuurprogrammabewuste verbindingspooling, omdat een stuurprogramma de kosten voor het hergebruik van een verbinding in de pool beter kan schatten voor een verbindingsaanvraag.

Geen overweging van toepassingsvoorkeur Sommige gegevensbronnen kunnen efficiƫnt nieuwe verbindingen openen (vergeleken met het opnieuw instellen van bepaalde kenmerken). Daarom kan een toepassing liever een nieuwe verbinding openen in plaats van een enigszins niet-overeenkomende verbinding opnieuw te gebruiken vanuit de pool en bepaalde waarden opnieuw in te stellen (hoewel dit mogelijk trager is tijdens de initialisatiezin van de verbindingsgroep). Maar sommige toepassingen kunnen de belasting van de server kleiner houden en minder verbindingen openen, hoewel er mogelijk grotere kosten zijn om de niet-overeenkomende problemen op te lossen voor correct gedrag. Zonder stuurprogrammabewuste verbindingspooling kunt u dit soort voorkeur niet effectief opgeven, omdat driverbeheer niet alle stuurprogrammaspecifieke verbindingskenmerken herkent. Met stuurprogramma-bewuste verbindinggroepering kan een stuurprogramma de gebruikersvoorkeur verkrijgen (met een attribuut specifiek voor het stuurprogramma van SQLSetConnectAttr), zodat de kosten voor het hergebruik van een verbinding uit de pool beter kunnen worden geschat op basis van de voorkeur van een gebruiker.

Zie Het ontwikkelen van Connection-Pool Awareness in een ODBC-stuurprogramma voor meer informatie over connectiepool met stuurprogrammabewustzijn.

Stuurprogrammaondersteuning bepalen

Stuurprogrammabewuste groepsgewijze verbindingen is een optionele functie die een stuurprogramma mogelijk niet ondersteunt. Als u wilt bepalen of een stuurprogramma dit ondersteunt, gebruikt u het SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType van SQLGetInfo.

Driver-bewuste verbindingspooling inschakelen

Een toepassing kan de verbindingsgroeperingsbewustzijn van een stuurprogramma gebruiken door het kenmerk SQL_ATTR_CONNECTION_POOLING in te stellen op SQL_CP_DRIVER_AWARE met SQLSetEnvAttr. Als een stuurprogramma geen ondersteuning biedt voor het bewustzijn van verbindingsgroepen, wordt groepsgewijze stuurprogrammabeheer gebruikt (hetzelfde als als SQL_CP_ONE_PER_HENV is opgegeven, in plaats van SQL_CP_DRIVER_AWARE). ODBC 2.x- en 3.x-toepassingen kunnen deze functie inschakelen.

Zie ook

Een ODBC-stuurprogramma ontwikkelen