Kockázatcsökkentés: Készletblokkolás időtartama

A kapcsolatkészlet blokkolási időszaka el lett távolítva az Azure SQL-adatbázisokkal való kapcsolatok esetében.

További leírás

A .NET-keretrendszer 4.6.1-s és korábbi verzióiban, amikor egy alkalmazás átmeneti csatlakozási hibát tapasztal egy adatbázishoz való csatlakozáskor, a kapcsolati kísérlet nem próbálkozható meg gyorsan, mert a kapcsolatkészlet gyorsítótárazza a hibát, és 5 másodperctől 1 percig újra eldobja. További információ: SQL Server-kapcsolatkészletezés (ADO.NET). Ez a viselkedés problémás az Azure SQL-adatbázisokkal való kapcsolatok esetében, amelyek gyakran átmeneti hibákkal meghiúsulnak, amelyek általában néhány másodpercen belül helyreállnak. A kapcsolatkészlet blokkolási funkciója azt jelenti, hogy az alkalmazás hosszú ideig nem tud csatlakozni az adatbázishoz, annak ellenére, hogy az adatbázis elérhető. Ez a viselkedés különösen problémás az Azure SQL-adatbázisokhoz csatlakozó és néhány másodpercen belül renderelendő webalkalmazások esetében.

A .NET-keretrendszer 4.6.2-től kezdődően az ismert Azure SQL-adatbázisokhoz (*.database.windows.net, *.database.chinacloudapi.cn, *.database.usgovcloudapi.net, *.database.cloudapi.de) irányuló kapcsolatmegnyitási kérelmek esetében a rendszer nem gyorsítótárazza a kapcsolatmegnyitási hibákat. Minden más csatlakozási kísérlet esetén a kapcsolatkészlet blokkolási időszaka továbbra is érvényben marad.

Hatás

Ez a módosítás lehetővé teszi, hogy a kapcsolatmegnyitási kísérletek azonnal újrapróbálkozzanak az Azure SQL-adatbázisok esetében, ezáltal javítva a felhőalapú alkalmazások teljesítményét.

Kockázatcsökkentés

A változás által hátrányosan érintett alkalmazások esetében a kapcsolatkészlet blokkolási időszaka az új SqlConnectionStringBuilder.PoolBlockingPeriod tulajdonság beállításával konfigurálható. A tulajdonság értéke az enumerálás egyik System.Data.SqlClient.PoolBlockingPeriod tagja, amely három érték valamelyikét veheti fel:

Az előző viselkedés visszaállítható a PoolBlockingPeriod tulajdonság PoolBlockingPeriod.AlwaysBlockbeállításával.

Lásd még