Fungsi SQLRateConnection

Kesesuaian
Versi yang diperkenalkan: Kepatuhan standar ODBC 3.81: ODBC

Summary
SQLRateConnection menentukan apakah sebuah driver dapat menggunakan kembali koneksi yang sudah ada di pool koneksi.

Syntax

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

Arguments

hPermintaan
[Input] Pegangan token yang mewakili permintaan koneksi aplikasi baru.

hKoneksiKandidat
[Input] Koneksi yang ada di pool koneksi. Koneksi harus dalam keadaan terbuka.

fWajibTransactionEnlistment
[Input] Jika TRUE, menggunakan kembali hCandidateConnection dari koneksi yang ada untuk permintaan koneksi baru (hRequest) memerlukan pendaftaran tambahan.

transId
[Input] Jika fRequiredTransactionEnlistment adalah TRUE, transId mewakili transaksi DTC yang akan didaftarkan oleh permintaan. Jika fRequiredTransactionEnlistment SALAH, transId akan diabaikan.

pRating
[Output] Peringkat penggunaan ulang hCandidateConnection untuk hRequest. Penilaian ini akan berada di antara 0 hingga 100 (termasuk).

Returns

SQL_SUCCESS, SQL_ERROR, atau SQL_INVALID_HANDLE.

Diagnostics

Driver Manager tidak akan memproses informasi diagnostik yang dikembalikan dari fungsi ini.

Remarks

SQLRateConnection menghasilkan skor antara 0 hingga 100 (inklusif) yang menunjukkan seberapa baik koneksi yang sudah ada sesuai dengan permintaan.

Score Makna (ketika SQL_SUCCESS dikembalikan)
0 hCandidateConnection tidak boleh digunakan ulang untuk hRequest.
Setiap nilai antara 1 dan 98 (termasuk) Semakin tinggi skornya, semakin dekat hCandidateConnection yang cocok dengan hRequest.
99 Hanya ada ketidaksesuaian pada atribut yang tidak signifikan. Driver Manager seharusnya menghentikan lingkaran rating.
100 Pasangan yang sempurna. Driver Manager seharusnya menghentikan lingkaran rating.
Nilai lain yang lebih dari 100 hCandidateConnection ditandai sebagai mati dan tidak akan digunakan kembali bahkan dalam permintaan koneksi di masa depan.

Driver Manager akan menandai koneksi sebagai mati jika kode pengembalian selain SQL_SUCCESS (termasuk SQL_SUCCESS_WITH_INFO) atau ratingnya lebih dari 100. Koneksi yang mati itu tidak akan digunakan kembali (bahkan dalam permintaan koneksi berikutnya) dan pada akhirnya akan habis waktu setelah CPTimeout berlalu. Driver Manager akan terus mencari koneksi lain dari pool untuk memberi rating.

Jika Driver Manager menggunakan kembali koneksi yang skornya secara ketat lebih kecil dari 100 (termasuk 99), Driver Manager akan memanggil SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) untuk mengatur ulang koneksi kembali ke status yang diminta oleh aplikasi. Driver tidak boleh mereset koneksi dalam panggilan fungsi ini.

Jika fRequiredTransactionEnlistment TRUE, menggunakan kembali hCandidateConnection memerlukan pendaftaran tambahan (transId != NULL) atau unenlistment (transId == NULL). Ini menunjukkan biaya penggunaan ulang koneksi dan apakah driver harus enlist / unenlist koneksi jika koneksi akan digunakan kembali. Jika fRequireTransactionEnlistment FALSE, driver harus mengabaikan nilai transId.

Driver Manager menjamin bahwa handle HENV induk hRequest dan hCandidateConnection adalah sama. Driver Manager menjamin bahwa ID pool yang terkait dengan hRequest dan hCandidateConnection adalah sama.

Aplikasi tidak boleh memanggil fungsi ini secara langsung. Driver ODBC yang mendukung pooling koneksi yang sadar driver harus mengimplementasikan fungsi ini.

Sertakan sqlspi.h untuk pengembangan driver ODBC.