Azure リレーショナル データベース サービス。
詳細な情報をご提供いただきありがとうございます。
ご説明いただいた動作から判断すると、これは一般的な SSL/TLS 構成の問題ではない可能性が高いと考えられます。TLS バージョンの不一致、証明書の問題、または暗号スイートの互換性の問題であれば、通常はすべての接続試行が一貫して失敗します。しかし今回のケースでは、失敗は高い同時実行数の状況下でのみ断続的に発生しています。
具体的には、
- 11 個の同時実行は正常に完了する
- 12 個の同時実行時には、そのうち 2~3 件のみが失敗する
- 失敗するプロセスは実行ごとに異なる
- 1 つの実行を約 10 秒遅らせると、12 個すべての実行が成功する
これらの状況から、問題は TLS/SSL そのものではなく、高い並列接続作成時に発生する一時的な接続確立の負荷、リソース競合、またはコネクションプールの動作に関連している可能性が高いと考えられます。
さらなる調査のため、障害発生時間帯において Azure SQL Managed Instance の以下のメトリックをご確認いただくことをお勧めします。
- CPU Percentage
- Sessions Percentage
- Workers Percentage
- Connection Count
- Resource Health イベント
また、アプリケーション側の構成についても確認し、以下の情報をご提供ください。
- Microsoft JDBC Driver のバージョン
- HikariCP の設定内容
- 完全な例外スタックトレース(SSLHandshakeException やタイムアウト関連のネストされた例外を含む)
さらに、JDBC および SSL ハンドシェイクのログを有効化することで、障害が TLS ネゴシエーション中に発生しているのか、証明書の検証時なのか、あるいは接続確立時なのかを特定しやすくなります。