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.
Il pool di connessioni consapevole del driver è una nuova funzionalità del Driver Manager in Windows 8. Il pool di connessioni consapevole del driver consente agli sviluppatori di driver di personalizzare il comportamento del pool di connessioni nel proprio driver ODBC.
Annotazioni
Il pool di connessioni compatibile con driver non è supportato con la libreria di cursori. Un'applicazione riceverà un messaggio di errore se tenta di abilitare la libreria di cursori tramite SQLSetConnectAttr, quando è abilitato il pool di connessioni compatibile con driver.
Il pool di connessioni consapevole del driver risolve i seguenti problemi relativi al pool di connessioni del Driver Manager:
Frammentazione del pool Gestione driver restituirà una connessione dal pool solo se corrisponde esattamente alla stringa di connessione di una nuova richiesta di connessione. Un motivo per cui Gestione driver richiede una corrispondenza esatta è che Gestione driver non riconosce tutte le parole chiave della stringa di connessione specifiche del driver e il relativo valore. Tuttavia, alcuni valori di parole chiave della stringa di connessione,ad esempio il nome del database, potrebbero non richiedere una corrispondenza esatta, poiché il driver può modificare il database in meno del tempo necessario per aprire una nuova connessione (la differenza di ora esatta dipende dall'origine dati). Inoltre, le differenze in alcuni attributi di connessione, ad esempio SQL_ATTR_CURRENT_CATALOG, possono richiedere più tempo per modificare rispetto alle differenze in altri attributi, ad esempio SQL_ATTR_LOGIN_TIMEOUT. Anche questo può impedire al Gestore Driver di utilizzare la connessione a costo più basso e riutilizzabile dal pool. Quando un driver deve creare molte nuove connessioni, le prestazioni di un'applicazione possono diminuire e la scalabilità dell'origine dati può diminuire. La frammentazione del pool può essere ridotta con il pool di connessioni compatibile con driver perché un driver può stimare meglio il costo del riutilizzo di una connessione nel pool per una richiesta di connessione.
Nessuna considerazione della preferenza dell'applicazione Alcune origini dati possono aprire in modo efficiente nuove connessioni (rispetto alla reimpostazione di alcuni attributi), pertanto un'applicazione potrebbe preferire l'apertura di una nuova connessione anziché tentare di riutilizzare una connessione leggermente non corrispondente dal pool e reimpostare alcuni valori (anche se questo potrebbe risultare più lento durante la frase di inizializzazione del pool di connessioni). Tuttavia, alcune applicazioni possono mantenere il carico del server più piccolo e aprire meno connessioni, anche se potrebbe esserci un costo maggiore per correggere le mancate corrispondenze per il comportamento corretto. Senza un pool di connessioni in grado di riconoscere il driver, non è possibile specificare questo tipo di preferenza in modo efficace, perché il Driver Manager non riconosce tutti gli attributi di connessione specifici del driver. Il pool di connessioni compatibile con driver consente a un driver di ottenere la preferenza utente (con un attributo specifico del driver di SQLSetConnectAttr) in modo che possa stimare meglio il costo di riutilizzo di una connessione dal pool in base alle preferenze di un utente.
Per altre informazioni sul pool di connessioni compatibile con i driver, vedere Sviluppare la consapevolezza del pool di connessioni in un driver ODBC.
Determinazione del supporto dei driver
Il pool di connessioni compatibile con driver è una funzionalità facoltativa che un driver potrebbe non supportare. Per determinare se un driver lo supporta, usare il SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType di SQLGetInfo.
Come abilitare il pool di connessioni Driver-Aware
Un'applicazione può usare la consapevolezza del pool di connessioni di un driver impostando l'attributo SQL_ATTR_CONNECTION_POOLING su SQL_CP_DRIVER_AWARE con SQLSetEnvAttr. Se un driver non supporta il supporto per il pool di connessioni, verrà usato il pool di connessioni del Driver Manager (come se SQL_CP_ONE_PER_HENV fosse stato specificato, anziché SQL_CP_DRIVER_AWARE). Le applicazioni ODBC 2.x e 3.x possono abilitare questa funzionalità.
Vedere anche
Sviluppo di un driver ODBC