Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Conformità
Versione introdotta: Conformità agli standard ODBC 3.81: ODBC
Sommario
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 );
Arguments
hRichiesta
[Input] Un handle di token che rappresenta la nuova richiesta di connessione applicativa.
hCandidateConnection
[Input] La connessione esistente nel pool di connessioni. La connessione deve essere in uno stato aperto.
fRequiredTransactionEnenrollment
[Input] Se TRUE, riutilizzare l'hCandidateConnection della connessione esistente per la nuova richiesta di connessione (hRequest) richiede un arruolamento aggiuntivo.
transId
[Input] Se fRequiredTransactionEnenrollment è TRUE, transId rappresenta la transazione DTC che la richiesta inserirà. Se fRequiredTransactionEnlistment è FALSO, il transId verrà ignorato.
pRating
[Output] Valutazione di riutilizzo di hCandidateConnection per la hRequest. Questa valutazione sarà compresa tra 0 e 100 (inclusi).
Returns
SQL_SUCCESS, SQL_ERROR o SQL_INVALID_HANDLE.
Diagnostica
Il Driver Manager non elaborerà le informazioni diagnostiche restituite da questa funzione.
Osservazioni:
SQLRateConnection produce un punteggio tra 0 e 100 (incluso) che indica quanto bene una connessione esistente corrisponde alla richiesta.
| Score | Significato (quando SQL_SUCCESS viene restituito) |
|---|---|
| 0 | hCandidateConnection non deve essere riutilizzato per la hRequest. |
| Qualsiasi valore compreso tra 1 e 98 (inclusi) | Più alto è il punteggio, più vicino è l'abbinamento di hCandidateConnection con hRequest. |
| 99 | Ci sono solo disallineamenti in attributi insignificanti. Il Driver Manager dovrebbe interrompere il ciclo di valutazione. |
| 100 | Corrispondenza perfetta. Il Driver Manager dovrebbe interrompere il ciclo di valutazione. |
| Qualsiasi altro valore superiore a 100 | hCandidateConnection è segnalato come morto e non verrà riutilizzato nemmeno in una futura richiesta di connessione. |
Il Driver Manager segnerà una connessione come morta se il codice di ritorno è diverso da SQL_SUCCESS (inclusa SQL_SUCCESS_WITH_INFO) o se la valutazione è superiore a 100. Quella connessione morta non verrà riutilizzata (nemmeno nelle future richieste di connessione) e alla fine verrà scaduta dopo il passaggio di CPTimeout. Il Driver Manager continuerà a trovare un'altra connessione dal pool per valutare.
Se il Driver Manager ha riutilizzato una connessione con punteggio strettamente inferiore a 100 (inclusi 99), il Driver Manager chiamerà SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) per resettare la connessione nello stato richiesto dall'applicazione. Il driver non dovrebbe resettare la connessione in questa chiamata di funzione.
Se il riutilizzo di hCandidateEnenrollment è TRUE, il riutilizzo di hCandidateConnection richiede un arruolamento extra (transId != NULL) o un-en-un-enrollment (transId == NULL). Questo indica il costo di riutilizzare una connessione e se il driver dovrebbe arruolare o disattivare la connessione se intende riutilizzarla. Se fRequireTransactionEnlistment è FALSO, il driver dovrebbe ignorare il valore di transId.
Il Driver Manager garantisce che il handle HENV principale di hRequest e hCandidateConnection siano lo stesso. Il Driver Manager garantisce che l'ID del pool associato a hRequest e hCandidateConnection sia lo stesso.
Le applicazioni non dovrebbero chiamare direttamente questa funzione. Un driver ODBC che supporta il pooling di connessioni consapevole del driver deve implementare questa funzione.
Includere sqlspi.h per lo sviluppo dei driver ODBC.