.NET Driver-Versionshinweise 2024¶
Dieser Artikel enthält die Versionshinweise für .NET Driver, einschließlich der folgenden, sofern zutreffend:
Verhaltensänderungen
Neue Features
Fehlerkorrekturen für Kunden
Snowflake verwendet semantische Versionierung für .NET Driver-Aktualisierungen.
Siehe .NET-Treiber für die Dokumentation.
Version 4.1.0 (5. August 2024)¶
Neue Features und Verbesserungen¶
Protokollmeldungen über das Domänenziel, zu dem der Treiber eine Verbindung herstellt, wurden hinzugefügt.
Aktualisiert
DbCommand. Prepare()
tut nichts, anstatt eine Ausnahme auszulösen.
Fehlerkorrekturen¶
Es wurde ein Problem behoben, bei dem eine Ausnahme beim Abbrechen einer
OpenAsync
-Operation verloren ging.
Version 4.0.0 (8. Juli 2024)¶
Änderungen in Verhaltensänderungs-Release (BCR)¶
Ab Version 4.0.0 wurden mit dem .NET-Treiber die folgenden Änderungen eingeführt:
Änderungen in der Verhaltensweise des Verbindungspools:
Der Treiber verwendet nun separate Pools für jede eindeutige Verbindungszeichenfolge. Zuvor verwendete der Treiber nur einen Pool für alle Verbindungszeichenfolgen.
Der Parameter
maxPoolSize
ändert sich:Zuvor war es die Anzahl der Verbindungen, die im Pool gespeichert werden sollte. Nun wird die maximale Anzahl der Verbindungen definiert, die für einen bestimmten Pool geöffnet werden dürfen (für jede eindeutige Verbindungszeichenfolge gibt es einen anderen Pool, sodass Sie die Einstellung für jeden von ihnen anders vornehmen können).
Wenn
maxPoolSize
erreicht ist, wartet der Thread, der eine neue Verbindung anfragt, bis eine beliebige Verbindung aus dem Pool zur Wiederverwendung verfügbar ist, ohne die Beschränkung zu überschreiten. Im Falle eines Timeouts wird eine Ausnahme ausgelöst.Sie können die Wartezeit in der Verbindungszeichenfolge konfigurieren, indem Sie die Eigenschaft
waitingForIdleSessionTimeout
einstellen. Der Standardwert für das Timeout beträgt 30 Sekunden. Sie können den Wert auf 0 ändern, um das Warten zu deaktivieren.Der Standardwert für
maxPoolSize
ist 10. Vergewissern Sie sich, dass dermaxPoolSize
-Wert für Ihre Bedürfnisse richtig eingestellt ist, damit Ihre Threads nicht hängen bleiben oder Timeout-Ausnahmen auftreten.Die Eigenschaft
maxPoolSize
sollte größer oder gleichminPoolSize
sein.
Es wurde der neue Parameter
minPoolSize
mit einem Standardwert von 2 hinzugefügt, der den Treiber veranlasst, zwei Verbindungen zu öffnen (die zweite im Hintergrund), wenn Sie die erste Verbindung für eine bestimmte Verbindungszeichenfolge öffnen. Sie können diesen Wert in der Verbindungszeichenfolge auf 0 setzen, wenn Sie dieminPoolSize
-Funktion deaktivieren möchten.Die Konfiguration des Pools wurde auf einen von der Zeichenfolge abhängigen Ansatz umgestellt. Alle Eigenschaften, die die Verhaltensweise des Verbindungspools steuern, können nun in der Verbindungszeichenfolge übergeben werden. Es ist nicht mehr möglich, Eigenschaften des Verbindungspools über
SnowflakeDbConnectionPool
-Setter einzustellen, wieSnowflakeDbConnectionPool.SetTimeout
,SetPooling
oderSetMaxPoolSize
. Die Verwendung vonSnowflakeDbConnectionPool
-Setters löst nun Ausnahmen aus.Zuvor wurden Verbindungen, die die Parameter für Datenbank, Schema, Rolle oder Warehouse (z. B. durch Ausführung des Befehls ALTER SESSION SET) änderten, zusammengelegt. Die neue standardmäßige Verhaltensweise für solche Fälle zerstört geänderte Verbindungen, wenn sie beim Schließen nicht in den Pool zurückkehren. Wenn Sie geänderte Verbindungen im Pool verwenden möchten, müssen Sie
ChangedSession=OriginalPool
zu Ihrer Verbindungszeichenfolge hinzufügen.Verbindungen mit externer Authentifizierung über Browser oder in einigen Fällen über KeyPair/JWT-Token-Authentifizierung werden standardmäßig nicht mehr im Pool gespeichert. Um das Pooling solcher Verbindungen zu aktivieren, müssen Sie
poolingEnabled=true
der Verbindungszeichenfolge hinzufügen. Bei anderen Authentifizierungsmethoden ist das Pooling standardmäßig aktiviert.Weitere Informationen zur Verwendung von Verbindungspools finden Sie unter Verwenden von Verbindungspools.
Änderung der Verhaltensweise des Parameters
NONPOXYHOSTS
:Die Verhaltensweise des Parameters
NONPROXYHOSTS
hat sich geändert. Früher wurde ein Host nicht projiziert, wenn sein Name den in diesem Parameter angegebenen Wert enthielt. Nun wird der Host nicht mehr proxyiert, wenn er genau dem im Parameter angegebenen Wert entspricht. Zuvor würdeNONPROXYHOSTS=c
zum Beispiel mit jedem Host übereinstimmen, der „c“ enthält, also auch mit „ihr-konto.snowflakecomputing.com“. Nach der Änderung müssen Sie den gesamten Host angeben, z. B.NONPROXYHOSTS=Ihr-Konto.snowflakecomputing.com
, damit er nicht projiziert wird.
Neue Features und Verbesserungen¶
Geänderte Verhaltensweise des Verbindungspools mit mehreren Pools (einer für jede eindeutige Zeichenfolge) und einer von der Verbindungszeichenfolge abhängigen Konfiguration. Weitere Informationen zur Verwendung von Verbindungspools finden Sie unter Verwenden von Verbindungspools.
Ziel ist .netstandard 2.0.
Der Treiber-Assembly wurde eine starke Namenssignatur hinzugefügt.
Es wurde die Möglichkeit hinzugefügt, den Parameter
QueryTag
in der Verbindungszeichenfolge und für das ObjektSnowflakeDbCommand
einzustellen, um die Abfragen der Verbindung und des Befehls mit einem Tag zu kennzeichnen.Die Abhängigkeit von
BouncyCastle.Cryptography
wurde erhöht.Die Abhängigkeit von
Google.Cloud.Storage.V1
wurde erhöht.Es wurde der neue Parameter
DISABLE_SAML_URL_CHECK
eingeführt, der bei der Authentifizierung mit Okta die Überprüfung deaktiviert, ob die SAML postback-URL mit der Host-URL übereinstimmt.
Fehlerkorrekturen¶
Die Behandlung von mit Bindungen übergebenen Datums- und Zeitwerten bei Abfragen mit einer sehr großen Anzahl von Bindungen (mehr als
CLIENT_STAGE_ARRAY_BINDING_THRESHOLD
) wurde korrigiert.Es wurde korrigiert, dass SQL Abfragen an den Server sendet, wobei die Originalabfragen anstelle der beschnittenen Abfragen gesendet wurden, was zu Fehlern bei Abfragen führte, die mit Kommentaren endeten.
Implementierung einer zuverlässigeren Methode zur Bereitstellung von Hosts im Parameter
NONPROXYHOSTS
.Korrektur der Unterstützung von doppelten Anführungszeichen in den Parametern für die Verbindungszeichenfolgen DB, SCHEMA, WAREHOUSE, ROLE.
Korrektur der S3-Clients durch Hinzufügen von „https://“ zu
ServiceUrl
, falls es fehlt.Die Geheimniserkennung wurde aktualisiert, um Geheimnisse beim Protokollieren besser zu maskieren.
Die Einstellung eines korrekten
SnowflakeDbParameter.DbType
-Wertes wurde hinzugefügt.Korrektur der Logik zum Kürzen von
connectionTimeout
durchretryTimeout
im Falle eines unendlichenretryTimeout
-Wertes.Die Logik zum Erhöhen von
maxHttpRetries
wurde auf den Standardwert für HTTP-Clients angewendet. Zuvor wurde es nur auf die Okta-Authentifizierung angewendet.
Version 3.1.0 (27. März 2024)¶
Neue Features und Verbesserungen¶
Unterstützung für das Ausführen asynchroner Abfragen wurde hinzugefügt.
Fehlerkorrekturen¶
Verbesserte Ausnahmen, die vom Okta-Authentifikator ausgelöst werden.
Problem mit der Validierung sehr kurzer (1-2 Zeichen) Kontonamen wurde behoben.
Problem behoben, das mit dem Abrufen der Eigenschaft
WAREHOUSE
aus einer Verbindungszeichenfolge mit Inhalt in Anführungszeichen, wie z. B."WAREHOUSE=\"two words\""
, zusammenhing.
Version 3.0.0 (29. Februar 2024)¶
Änderungen in Verhaltensänderungs-Release (BCR)¶
Zur Erhöhung der Sicherheit durchsucht der Treiber bei einfachen Protokollierungskonfigurationen nicht mehr ein temporäres Verzeichnis. Außerdem verlangt der Treiber nun, dass die Konfigurationsdatei für die Protokollierung auf Unix-Systemen die Dateiberechtigungen so einschränkt, dass nur der Eigentümer der Datei die Dateien ändern kann (z. B.
chmod 0600
,chmod 0644
).Der Treiber löst nun eine
SnowflakeDbException
-Ausnahme mit einerQueryID
für PUT/GET-Fehler aus. Zuvor gab der Treiber unterschiedliche Typen von Ausnahmen zurück, z. B.FileNotFound
undDirectoryNotFound
. Wenn Ihre Anwendung auf eine dieser Ausnahmen geprüft hat, müssen Sie Ihren Code aktualisieren, um für PUT/GET-Fehler nurSnowflakeDbException
zu behandeln.Der Treiber unterstützt keine älteren Versionen, wie V1 und V2, des Block-Parsers/Downloaders mehr. Als Teil des Upgrades auf Version V3 unterstützt der Treiber nicht mehr die Konfigurationsoptionen
SFConfiguration.UseV2JsonParser
undSFConfiguration.UseV2ChunkDownloader
. Wenn Sie ähnliche Befehle wie die folgenden verwendet haben, müssen Sie diese entfernen:SFConfiguration.Instance().ChunkParserVersion = 1;
oderSFConfiguration.Instance().ChunkParserVersion = 2;
SFConfiguration.Instance().ChunkDownloaderVersion = 1;
oderSFConfiguration.Instance().ChunkDownloaderVersion = 2;
SFConfiguration.Instance().UseV2JsonParser
SFConfiguration.Instance().UseV2ChunkDownloader
Neue Features und Verbesserungen¶
Unterstützung für mehrere SAML-Integrationen wurde hinzugefügt.
Fehlerkorrekturen¶
Verbesserte Sicherheit beim einfachen Protokollierungs-Feature:
Verwendung einer zuverlässigeren Methode zur Bestimmung des zu verwendenden Treiberverzeichnisses bei der Suche nach Client-Konfigurationsdateien.
Es wird kein temporäres Verzeichnis mehr für die Konfigurationssuche verwendet.
Erzwingen zusätzlicher Dateiberechtigungsprüfungen unter Unix für mehr Sicherheit.
Hinzufügen einer ausführlicheren Protokollierung.
Okta-Wiederholungsproblem für SSO/SAML-Endpunkte wurde behoben.
Fail-Fast bei Befehlen ohne Textausführung hinzugefügt.
Ausnahmen, die von fehlgeschlagenen PUT/GET-Ausführungen ausgelöst werden, enthalten nun
QueryId
, wenn möglich.Bibliothek
Portable.BouncyCastle
durchBouncyCastle.Cryptography
ersetzt.
Version 2.2.0 (17. Januar 2024)¶
Änderungen in Verhaltensänderungs-Release (BCR)¶
Ab Version 2.2.0 ersetzt der .NET-Treiber beim Konstruieren von Hostnamen auf Grundlage eines Kontonamens automatisch Unterstriche (
_
) im Kontonamen durch Bindestriche (-
). Diese Änderung hat Auswirkungen für PrivateLink-Kunden, deren Kontonamen Unterstriche enthalten. In diesem Fall müssen Sie den Standardwert überschreiben, indem SieallowUnderscoresInHost
auftrue
setzen. Sie können dieses Verhalten überschreiben, indem SieallowUnderscoresInHost=true
inConnectionString
festlegen.Diese Änderung wurde vorgenommen, um die DNS-Auflösungsfehler zu beheben, die bei der Verbindung über den öffentlichen Link mit Snowflake-Konten auftraten, deren Kontonamen Unterstriche enthielten.
Neue Features und Aktualisierungen¶
Verbesserte Arrow-Abfrageleistung.
Ersetzt beim Konstruieren von Hostnamen auf Grundlage eines Kontonamens automatisch Unterstriche (
_
) im Kontonamen durch Bindestriche (-
).Konfigurationsparameter
allowUnderscoresInHost
hinzugefügt, damit Unterstriche (_) in Kontonamen im konstruierten Hostnamen beibehalten werden können. Mit diesem Parameter können Sie die mit diesem Release verbundene Verhaltensänderung außer Kraft setzen.
Fehlerkorrekturen¶
Um ein Problem mit Verbindungs-Timeouts zu beheben, schließt der Treiber beim Herstellen von Verbindungen jetzt asynchron abgelaufene Sitzungen.