なぜ重要か
従来は非同期の接続失敗時に例外のアンラップが必要で、OpenAsync失敗後に接続がConnecting状態へ残る場合がありました。6.0.0では元の例外を直接扱え、失敗後に同じ接続オブジェクトで再試行できます。接続終了時はキャンセルならClosed、障害ならBrokenとなるため、状態に応じた後処理が必要です。
対象となるチーム
- Snowflake接続を管理する.NETアプリケーション開発チーム
- 大量のクエリ結果を非同期取得するデータ処理チーム
- AWS Workload Identity Federationを利用するクラウド基盤チーム
- 高精度NUMBERや大きな数値を扱う業務アプリケーションチーム
提供条件
- 提供ステータスはリリースノートに記載なし
- エディションの記載はリリースノートに記載なし
- リージョンの記載はリリースノートに記載なし
- .NET Driverのバージョン6.0.0として提供され、Snowflakeはセマンティックバージョニングを採用
ユースケース
- 接続確立に一時的な障害が発生するサービスで、
OpenAsyncの元の例外を判定し、同じ接続オブジェクトを再利用して再試行する。 - 大量のJSONまたはArrow形式のクエリ結果を取得するAPIで、リクエスト切断時に
CancellationTokenを伝播して不要な解析処理を中断する。 - Snowflakeの大きなNUMBER値を.NETの
Decimalへ変換できない場合に、AllowNumberOverflowAsString=trueで文字列として受け取る。 - AWS環境でWorkload Identity Federationを利用し、既定のSigV4-presigned
GetCallerIdentity方式を使う。必要な場合のみ環境変数で署名付きJWT方式を有効化する。
仕組みと使い方
通常どおり.NET Driver 6.0.0をアプリケーションへ組み込みます。数値オーバーフローを例外ではなく文字列で取得したい場合は接続プロパティにAllowNumberOverflowAsString=trueを指定します。AWS Workload Identity FederationでSTSのGetWebIdentityToken経由の署名付きJWT方式を選ぶ場合は、プロセスの環境変数にSNOWFLAKE_ENABLE_AWS_WIF_OUTBOUND_TOKEN=trueを設定します。非同期のクエリ結果取得では、利用するAPIが受け取るCancellationTokenへ呼び出し元のトークンを渡します。OpenAsync失敗時は元の例外を処理し、CloseAsyncはキャンセル時のClosedと障害時のBrokenを区別してください。
導入ステップ
- 公式の.NET Driverドキュメントで、6.0.0の対応ランタイムとインストール方法を確認する。
- 既存アプリケーションの依存バージョンを6.0.0へ更新し、コンパイルと単体テストを実行する。
OpenAsyncとCloseAsyncの例外処理からAggregateException前提の分岐を洗い出して修正する。- 接続失敗後の再試行、終了時のキャンセル・障害状態、クエリ結果取得のキャンセルを統合テストする。
- 大きな数値、1970年以前の小数秒付きTimestamp、GCSアップロード、AWS認証を利用する場合は回帰テストを追加する。
運用上の注意
- 6.0.0はメジャーバージョンであり、
OpenAsyncとCloseAsyncの例外型・接続状態の挙動が変わります。 CloseAsyncの障害後は接続がBrokenになるため、その接続を通常の再利用対象として扱わないでください。AllowNumberOverflowAsString=trueでは数値が文字列として返るため、GetValue()の戻り値を数値型前提で処理しているコードを確認してください。- AWS WIFの既定方式が変更されています。既存環境でアウトバウンドトークン方式を前提としている場合は、認証テストで挙動を確認してください。
- チャンク解析中のキャンセル対応は、呼び出し側が適切な
CancellationTokenをAPIへ渡していることが前提です。
制約事項
- 提供ステータス、エディション、リージョン、契約上の利用条件はリリースノートに記載なしです。
- キャンセル可能な具体的API一覧や、キャンセル時のサーバー側クエリ停止動作はリリースノートに記載なしです。
AllowNumberOverflowAsStringはSystem.Decimalまたはより狭い整数型の範囲を超える値が対象であり、すべての型変換や表示処理を自動的に変更する機能ではありません。- AWS WIFの認証方式変更以外の詳細なIAM権限、STS設定、ネットワーク要件はリリースノートに記載なしです。
次に確認すること
- 公式の[.NET Driver 2026リリースノート](https://docs.snowflake.com/en/release-notes/clients-drivers/dotnet-2026)と.NET Driver本体のドキュメントで、6.0.0のサポート対象を確認する。
- 本番前に、非同期接続の例外処理、再試行、
Closed・Broken状態判定を既存コードで検証する。 - AWS WIFを利用する環境では、既定方式と
SNOWFLAKE_ENABLE_AWS_WIF_OUTBOUND_TOKEN設定のどちらが必要か、IAM・STS担当者と確認する。 - 大量結果、数値オーバーフロー、Timestamp、GCSアップロードを含むステージング環境の回帰テスト結果を確認してから導入判断する。
公式情報
仕様・提供条件は更新される可能性があります。導入前に必ず公式リリースノートを確認してください。
https://docs.snowflake.com/release-notes/clients-drivers/dotnet-2026