Aracılığıyla paylaş


Driver-Aware Bağlantı Havuzu

Sürücü farkındalıklı bağlantı havuzu, Windows 8'de Sürücü Yöneticisi'nin yeni bir özelliğidir. Sürücü farkındalığına sahip bağlantı havuzu, sürücü yazarlarının ODBC sürücülerindeki bağlantı havuzu davranışını özelleştirmesine olanak tanır.

Uyarı

Sürücü farkındalığına sahip bağlantı havuzu, imleç kütüphanesi ile desteklenmez. Sürücü farkında bağlantı havuzu etkinleştirildiğinde, bir uygulama SQLSetConnectAttr aracılığıyla imleç kitaplığını etkinleştirmeye çalışırsa hata iletisi alacaktır.

Driver farkında bağlantı havuzu, Driver Manager bağlantı havuzundaki aşağıdaki sorunları giderir:

Havuz Parçalanması Sürücü Yöneticisi yalnızca yeni bir bağlantı isteğinin bağlantı dizesiyle tam eşleşmesi durumunda havuzdan bir bağlantı döndürür. Driver Manager'ın tam eşleşme gerektirmesinin bir nedeni, Driver Manager'ın sürücüye özgü her bağlantı dizesi anahtar sözcüğünü ve değerini anlamamasıdır. Ancak, bazı bağlantı dizesi anahtar sözcük değerleri (örneğin, veritabanının adı) tam eşleşme gerektirmeyebilir, çünkü sürücü veritabanını yeni bir bağlantı açmak için gereken süreden daha kısa sürede değiştirebilir (tam zaman farkı veri kaynağına bağlıdır). Ayrıca, bazı bağlantı özniteliklerindeki (SQL_ATTR_CURRENT_CATALOG gibi) farklılıkların değişmesi, diğer özniteliklerdeki (SQL_ATTR_LOGIN_TIMEOUT gibi) farklardan daha fazla zaman alabilir. Bu da Driver Manager'ın havuzdan en düşük maliyetli ve yeniden kullanılabilir bağlantıyı kullanmasını engelleyebilir. Bir sürücünün çok sayıda yeni bağlantı oluşturması gerektiğinde uygulamanın performansı düşebilir ve veri kaynağı ölçeklenebilirliği düşebilir. Havuz parçalanması, bir sürücünün bağlantı isteği için havuzdaki bir bağlantıyı yeniden kullanmanın maliyetini daha iyi tahmin edebilmesi nedeniyle, sürücü farkındalığı olan bağlantı havuzu kullanarak azaltılabilir.

Uygulama tercihi dikkate alınmaz Bazı veri kaynakları yeni bağlantıları verimli bir şekilde açabilir (bazı öznitelikleri sıfırlamaya kıyasla), bu nedenle bir uygulama havuzdan biraz eşleşmeyen bir bağlantıyı yeniden kullanmak ve bazı değerleri sıfırlamak yerine yeni bir bağlantı açmayı tercih edebilir (ancak bağlantı havuzu başlatma tümceciği sırasında bu daha yavaş olabilir). Ancak bazı uygulamalar sunucu yükünü daha küçük tutabilir ve daha az bağlantı açabilir, ancak doğru davranışla ilgili uyuşmazlıkları düzeltmenin daha büyük bir maliyeti olabilir. Sürücü algılamalı bağlantı havuzu olmadan, Driver Manager sürücüye özgü tüm bağlantı özniteliklerini tanımadığından bu tür bir tercihi etkili bir şekilde belirtemezsiniz. Sürücü kullanan bağlantı havuzu, bir sürücünün kullanıcı tercihini (sürücüye özgü SQLSetConnectAttr özniteliğiyle) almasını sağlar, böylece kullanıcının tercihine göre havuzdan bir bağlantıyı yeniden kullanmanın maliyetini daha iyi tahmin edebilir.

Sürücü farkındalığı olan bağlantı havuzu hakkında daha fazla bilgi için bkz. ODBC Sürücüsünde Connection-Pool Farkındalığı Geliştirme.

Sürücü Desteğini Belirleme

Sürücü farkındalığına sahip bağlantı havuzu, bir sürücünün desteklemeyebileceği isteğe bağlı bir özelliktir. Bir sürücünün desteklenip desteklemediğini belirlemek için SQLGetInfo'nun SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType'ını kullanın.

Driver-Aware Bağlantı Havuzunu Etkinleştirme

Bir uygulama, SQLSetEnvAttr ile SQL_ATTR_CONNECTION_POOLING özniteliğini SQL_CP_DRIVER_AWARE olarak ayarlayarak sürücünün bağlantı havuzu farkındalığını kullanabilir. Eğer bir sürücü bağlantı havuzlaması farkındalığını desteklemiyorsa, Driver Manager bağlantı havuzlaması kullanılacaktır (SQL_CP_DRIVER_AWARE yerine SQL_CP_ONE_PER_HENV belirtilmesiyle aynı şekilde). ODBC 2.x ve 3.x uygulamaları bu özelliği etkinleştirebilir.

Ayrıca Bkz.

ODBC Sürücüsü Geliştirme