Funkce SQLRateConnection

Soulad
Představená verze: ODBC 3.81 Shoda standardů: ODBC

Summary
SQLRateConnection určuje, zda může ovladač znovu použít existující spojení v poolu připojení.

Syntax

  
SQLRETURN  SQLRateConnection(  
                SQLHDBC_INFO_TOKEN   hRequest,  
                SQLHDBC              hCandidateConnection,  
                BOOL                 fRequiredTransactionEnlistment,  
                TRANSID              transId,  
                DWORD *              pRating );  

Arguments

hRequest
[Vstup] Token handle reprezentující nový požadavek na připojení aplikace.

hCandidateConnection
[Vstup] Stávající spojení v připojovacím poolu. Spojení musí být v otevřeném stavu.

fRequiredTransactionEnlistment
[Vstup] Pokud je to pravda, opětovné použití hCandidateConnection existujícího spojení pro nový požadavek na spojení (hRequest) vyžaduje další zápis.

transId
[Vstup] Pokud je fRequiredTransactionEnlistment TRUE, transId představuje DTC transakci, kterou požadavek zaregistruje. Pokud je fRequiredTransactionEnlistment NEPRAVDIVÝ, transId bude ignorován.

pRating
[Výstup] hodnocení opakovaného použití hCandidateConnection pro hRequest. Toto hodnocení bude mezi 0 a 100 (včetně hodnocení).

Returns

SQL_SUCCESS, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Správce ovladačů nezpracovává diagnostické informace vrácené touto funkcí.

Remarks

SQLRateConnection vytváří skóre mezi 0 a 100 (včetně toho), které ukazuje, jak dobře existující spojení odpovídá požadavku.

Skóre Význam (když SQL_SUCCESS vrácen)
0 hCandidateConnection nesmí být pro hRequest znovu použit.
Jakékoli hodnoty mezi 1 a 98 (včetně nich) Čím vyšší skóre, tím blíže se hCandidateConnection shoduje s hRequest.
99 Nesoulad je jen v nevýznamných atributech. Driver Manager by měl zastavit hodnotící cyklus.
100 Dokonalá shoda. Driver Manager by měl zastavit hodnotící cyklus.
Jakákoli jiná hodnota větší než 100 hCandidateConnection je označen jako mrtvý a nebude znovu použit ani při budoucím požadavku na připojení.

Driver Manager označí spojení jako mrtvé, pokud je zpětný kód jiný než SQL_SUCCESS (včetně SQL_SUCCESS_WITH_INFO) nebo pokud je hodnocení větší než 100. Toto nefunkční spojení nebude znovu použito (ani při budoucích požadavcích na připojení) a nakonec bude časově vypršeno po schválení CPTimeoutu. Správce ovladačů bude dál hledat další spojení z poolu pro sazbu.

Pokud správce ovladačů znovu použil spojení, jehož skóre je přísně nižší než 100 (včetně 99), správce ovladačů zavolá SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN), aby obnovil spojení zpět do požadovaného stavu aplikace. Ovladač by neměl při tomto volání funkce resetovat připojení.

Pokud je fRequiredTransactionEnlistment PRAVDA, opětovné použití hCandidateConnection vyžaduje další zařazení (transId != NULL) nebo zrušení přihlášení (transId == NULL). To ukazuje náklady na opětovné použití připojení a zda by měl ovladač připojení zaregistrovat nebo odhlásit, pokud ho chce znovu použít. Pokud je fRequireTransactionEnlistment NEPRAVDIVÉ, řidič by měl hodnotu transId ignorovat.

Driver Manager zaručuje, že mateřský HENV účet hRequest a hCandidateConnection je stejný. Driver Manager zaručuje, že ID poolu spojené s hRequest a hCandidateConnection je stejné.

Aplikace by tuto funkci neměly volat přímo. ODBC ovladač, který podporuje poolování připojení s vědomím ovladačů, musí tuto funkci implementovat.

Zahrňte sqlspi.h pro vývoj ovladačů ODBC.