SQLRateConnection-Funktion
Konformität
Version eingeführt: ODBC 3.81 Standards Compliance: ODBC
Zusammenfassung
SQLRateConnection bestimmt, ob ein Treiber eine vorhandene Verbindung im Verbindungspool wiederverwenden kann.
Syntax
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Argumente
hRequest
[Eingabe] Ein Tokenhandpunkt, der die neue Anwendungsverbindungsanforderung darstellt.
hCandidateConnection
[Eingabe] Die vorhandene Verbindung im Verbindungspool. Die Verbindung muss sich in einem geöffneten Zustand befinden.
fRequiredTransactionEnlistment
[Eingabe] Wenn TRUE verwendet wird, erfordert die erneute Verwendung der hCandidateConnection für die neue Verbindungsanforderung (hRequest) eine zusätzliche Liste.
transId
[Eingabe] Wenn fRequiredTransactionEnlistment TRUE ist, stellt transId die DTC-Transaktion dar, die die Anforderung auflisten wird. Wenn fRequiredTransactionEnlistment FALSCH ist, wird transId ignoriert.
pRating
[Ausgabe] hCandidateConnections Wiederverwendungsbewertung für hRequest. Diese Bewertung wird zwischen 0 und 100 (einschließlich) liegen.
Gibt zurück
SQL_SUCCESS, SQL_ERROR oder SQL_INVALID_HANDLE.
Diagnose
Der Treiber-Manager verarbeitet keine Diagnoseinformationen, die von dieser Funktion zurückgegeben werden.
Hinweise
SQLRateConnection erzeugt eine Bewertung zwischen 0 und 100 (einschließlich), die angibt, wie gut eine vorhandene Verbindung mit der Anforderung übereinstimmt.
Bewertung | Bedeutung (wenn SQL_SUCCESS zurückgegeben wird) |
---|---|
0 | hCandidateConnection darf nicht für das hRequest wiederverwendet werden. |
Alle Werte zwischen 1 und 98 (einschließlich) | Je höher die Bewertung ist, desto näher, dass hCandidateConnection mit hRequest übereinstimmt. |
99 | Es gibt nur Unübereinstimmungen in unbedeutenden Attributen. Der Treiber-Manager sollte die Bewertungsschleife beenden. |
100 | Perfekte Übereinstimmung. Der Treiber-Manager sollte die Bewertungsschleife beenden. |
Jeder andere Wert größer als 100 | hCandidateConnection ist als tot gekennzeichnet und wird auch in einer zukünftigen Verbindungsanforderung nicht wiederverwendet. |
Der Treiber-Manager markiert eine Verbindung als tot, wenn der Rückgabecode etwas anderes als SQL_SUCCESS (einschließlich SQL_SUCCESS_WITH_INFO) ist oder die Bewertung größer als 100 ist. Diese tote Verbindung wird nicht wiederverwendet (auch in zukünftigen Verbindungsanforderungen) und wird schließlich nach dem Übergeben von CPTimeout zeitüberschreitungen. Der Treiber-Manager sucht weiterhin eine weitere Verbindung vom Pool zu rate.
Wenn der Treiber-Manager eine Verbindung wiederverwendet hat, deren Bewertung streng kleiner als 100 (einschließlich 99) ist, ruft der Treiber-Manager SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) auf, um die Verbindung wieder in den zustand zurückzusetzen, der von der Anwendung angefordert wird. Der Treiber sollte die Verbindung in diesem Funktionsaufruf nicht zurücksetzen.
Wenn fRequiredTransactionEnlistment TRUE ist, benötigt das erneute Verwenden von hCandidateConnection eine zusätzliche Enlistment (transId != NULL) oder unenlistment (transId == NULL). Dies gibt die Kosten für die erneute Verwendung einer Verbindung an und ob der Treiber die Verbindung auflisten / aufheben soll, wenn die Verbindung wiederverwendet werden soll. Wenn fRequireTransactionEnlistment FALSCH ist, sollte der Treiber den Wert von transId ignorieren.
Der Treiber-Manager garantiert, dass der übergeordnete HENV-Handle von hRequest und hCandidateConnection identisch ist. Der Treiber-Manager garantiert, dass die pool-ID, die hRequest und hCandidateConnection zugeordnet ist, identisch sind.
Anwendungen sollten diese Funktion nicht direkt aufrufen. Ein ODBC-Treiber, der treiberfähige Verbindungspooling unterstützt, muss diese Funktion implementieren.
Schließen Sie sqlspi.h für die ENTWICKLUNG von ODBC-Treibern ein.
Weitere Informationen
Entwickeln eines ODBC-Treibers
Treiberfähiges Verbindungspooling
Entwickeln von Verbindungspool-Unterstützung in einem ODBC-Treiber