Funzione SQLRateConnection
Conformità
Versione introdotta: Conformità agli standard ODBC 3.81: ODBC
Riepilogo
SQLRateConnection determina se un driver può riutilizzare una connessione esistente nel pool di connessioni.
Sintassi
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Argomenti
hRequest
[Input] Handle di token che rappresenta la nuova richiesta di connessione dell'applicazione.
hCandidateConnection
[Input] Connessione esistente nel pool di connessioni. La connessione deve trovarsi in uno stato aperto.
fRequiredTransactionEnlistment
[Input] Se TRUE, il riutilizzo dell'hCandidateConnection della connessione esistente per la nuova richiesta di connessione (hRequest) richiede un'integrazione aggiuntiva.
transId
[Input] Se fRequiredTransactionEnlistment è TRUE, transId rappresenta la transazione DTC che la richiesta verrà inserita. Se fRequiredTransactionEnlistment è FALSE, transId verrà ignorato.
pRating
[Output] Classificazione di riutilizzo di hCandidateConnection per hRequest. Questa classificazione sarà compresa tra 0 e 100 (inclusi).
Resi
SQL_SUCCESS, SQL_ERROR o SQL_INVALID_HANDLE.
Diagnostica
Gestione driver non elabora le informazioni di diagnostica restituite da questa funzione.
Osservazioni:
SQLRateConnection produce un punteggio compreso tra 0 e 100 (inclusi) che indica il livello di corrispondenza tra una connessione esistente e la richiesta.
Punteggio | Significato (quando viene restituito SQL_SUCCESS) |
---|---|
0 | hCandidateConnection non deve essere riutilizzato per hRequest. |
Qualsiasi valore compreso tra 1 e 98 (inclusi) | Maggiore è il punteggio, più vicino a hCandidateConnection corrisponde a hRequest. |
99 | Esistono solo mancate corrispondenze in attributi non significativi. Gestione driver deve arrestare il ciclo di classificazione. |
100 | Corrispondenza perfetta. Gestione driver deve arrestare il ciclo di classificazione. |
Qualsiasi altro valore maggiore di 100 | hCandidateConnection è contrassegnato come inattivo e non verrà riutilizzato anche in una richiesta di connessione futura. |
Gestione driver contrassegnerà una connessione come inattiva se il codice restituito è diverso da SQL_SUCCESS (incluso SQL_SUCCESS_WITH_INFO) o la classificazione è maggiore di 100. La connessione inattiva non verrà riutilizzata (anche nelle future richieste di connessione) e alla fine verrà scaduta dopo il passaggio di CPTimeout. Gestione driver continuerà a trovare un'altra connessione dal pool alla frequenza.
Se Gestione driver ha riutilizzato una connessione il cui punteggio è strettamente inferiore a 100 (incluso 99), Gestione driver chiamerà SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) per reimpostare la connessione nello stato richiesto dall'applicazione. Il driver non deve reimpostare la connessione in questa chiamata di funzione.
Se fRequiredTransactionEnlistment è TRUE, il riutilizzo di hCandidateConnection richiede un'integrazione aggiuntiva (transId != NULL) o unenlistment (transId == NULL). Ciò indica il costo del riutilizzo di una connessione e se il driver deve integrare/annullare l'elenco della connessione se intende riutilizzare la connessione. Se fRequireTransactionEnlistment è FALSE, il driver deve ignorare il valore di transId.
Gestione driver garantisce che l'handle HENV padre di hRequest e hCandidateConnection siano gli stessi. Gestione driver garantisce che l'ID pool associato a hRequest e hCandidateConnection corrispondano.
Le applicazioni non devono chiamare direttamente questa funzione. Un driver ODBC che supporta il pool di connessioni compatibile con driver deve implementare questa funzione.
Includere sqlspi.h per lo sviluppo di driver ODBC.
Vedi anche
Sviluppo di un driver ODBC
Pool di connessioni compatibile con il driver
Sviluppo del rilevamento di pool di connessioni in un driver ODBC