0

このコードの根拠の説明を探しているだけです (バージョン 2.2.4 の PoolUtiltites:293):

dataSource.setLoginTimeout((int) TimeUnit.MILLISECONDS.toSeconds(Math.min(1000L, connectionTimeout)));

このコードと setConnectionTimeout メソッドは、次の動作を取得することを意味します。

  • connectionTimeout == 0 の場合、loginTimeout = Integer.MAX_VALUE
  • connectionTimeout > 0 && < 100 の場合、HikariConfig は IllegalArgumentException をスローします
  • connectionTimeout >= 100 && <= 1000 の場合、loginTimeout = connectionTimeout
  • connectionTeimout > 1000 の場合、loginTimeout = 1000

それは私には本当に奇妙に見えます!

Math.min は Math.max である必要があるようです???

現在のプロジェクトでは、30 秒後に接続を失敗させたいと考えていますが、これは現在のセットアップでは不可能です。

私は 4.1 の postgres jdbc ドライバーを使用していますが、これは上記の問題とは関係ないと思います。

多くの感謝 - そしてクールなプーリングライブラリ!!!

4

1 に答える 1