다음을 통해 공유


SQLRateConnection 함수

규칙
버전 도입: ODBC 3.81 표준 준수: ODBC

요약
SQLRateConnection 은 드라이버가 연결 풀에서 기존 연결을 다시 사용할 수 있는지 여부를 결정합니다.

구문

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

인수

hRequest
[입력] 새 애플리케이션 연결 요청을 나타내는 토큰 핸들입니다.

hCandidateConnection
[입력] 연결 풀의 기존 연결입니다. 연결은 열린 상태여야 합니다.

fRequiredTransactionEnlistment
[입력] TRUE이면 새 연결 요청(hRequest)에 대해 기존 연결의 hCandidateConnection을 다시 사용하려면 추가 인리스트먼트가 필요합니다.

transId
[입력] fRequiredTransactionEnlistment가 TRUE이면 transId는 요청이 등록할 DTC 트랜잭션을 나타냅니다. fRequiredTransactionEnlistment가 FALSE이transId는 무시됩니다.

pRating
[출력] hRequest에 대한 hCandidateConnection의 재사용 등급입니다. 이 등급은 0에서 100 사이입니다(포함).

반품

SQL_SUCCESS, SQL_ERROR 또는 SQL_INVALID_HANDLE.

진단

드라이버 관리자는 이 함수에서 반환된 진단 정보를 처리하지 않습니다.

설명

SQLRateConnection 은 기존 연결이 요청과 얼마나 잘 일치하는지를 나타내는 0에서 100(포함) 사이의 점수를 생성합니다.

점수 의미(SQL_SUCCESS 반환되는 경우)
0 hCandidateConnection은 hRequest다시 사용해서는 안 됩니다.
1에서 98 사이의 모든 값(포함) 점수가 높을수록 hCandidateConnection이 hRequest일치할수록 더 가깝습니다.
99 중요하지 않은 특성에는 불일치만 있습니다. 드라이버 관리자는 등급 루프를 중지해야 합니다.
100 완벽한 일치. 드라이버 관리자는 등급 루프를 중지해야 합니다.
100보다 큰 다른 값 hCandidateConnection 은 데드로 표시되며 향후 연결 요청에서도 다시 사용되지 않습니다.

반환 코드가 SQL_SUCCESS(SQL_SUCCESS_WITH_INFO 포함) 이외의 항목이거나 등급이 100보다 큰 경우 드라이버 관리자는 연결을 데드로 표시합니다. 해당 데드 연결은 (이후의 연결 요청에서도) 다시 사용되지 않으며 결국 CPTimeout이 통과한 후 시간이 초과됩니다. 드라이버 관리자는 풀에서 속도에 대한 다른 연결을 계속 찾습니다.

드라이버 관리자가 점수가 100(99 포함)보다 엄격하게 작은 연결을 다시 사용하는 경우 드라이버 관리자는 SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN)를 호출하여 애플리케이션에서 요청한 상태로 연결을 다시 설정합니다. 드라이버가 이 함수 호출에서 연결을 다시 설정하면 안 됩니다.

fRequiredTransactionEnlistment가 TRUE이면 hCandidateConnection을 다시 사용하려면 추가 인리스트먼트(transId != NULL) 또는 unenlistment(transId == NULL)가 필요합니다. 이는 연결을 다시 사용하는 비용과 연결을 다시 사용할 경우 드라이버가 연결을 등록/등록 취소해야 하는지 여부를 나타냅니다. fRequireTransactionEnlistment가 FALSE이면 드라이버는 transId 값을 무시해야 합니다.

드라이버 관리자는 hRequesthCandidateConnection부모 HENV 핸들이 동일하다는 것을 보장합니다. 드라이버 관리자는 hRequest 및 hCandidateConnection연결된 풀 ID가 동일하다는 것을 보장합니다.

애플리케이션은 이 함수를 직접 호출해서는 안 됩니다. 드라이버 인식 연결 풀링을 지원하는 ODBC 드라이버는 이 함수를 구현해야 합니다.

ODBC 드라이버 개발을 위해 sqlspi.h를 포함합니다.

참고 항목

ODBC 드라이버 개발
드라이버 인식 연결 풀링
ODBC 드라이버에서 연결 풀 인식 개발