72684


Spring Bootによるシステムを構築しています。  
HikariCPを使用してOracleDBと接続を行っています。

起動時は問題ないのですが、稼働後しばらくすると確保していたConnection Poolが一つもなくなり、Total Connection が0になります。  
そうなった場合、アプリケーションを再起動するまでConnectionが戻ることがありません。  
何が原因として考えられますでしょうか。

HikariPoolの設定は以下のようにしています。

[code]

    spring.datasource.hikari.auto-commit=true
    spring.datasource.hikari.connection-timeout=600000
    spring.datasource.hikari.max-lifetime=900000
    spring.datasource.hikari.maximum-pool-size=50
    spring.datasource.hikari.minimum-idle=10
    
[/code]

一度Connection-timeoutのせいだと考えたため、これを3600000（1時間)に変更したところ、  
ログに以下のように表示され、同じように枯渇現象が発生していたため、60000と縮めました。

[code]

    (IOエラー: Invalid Operation, NOT Connected). Possibly consider using a shorter maxLifetime value.
    
[/code]

しばらく安定稼働していたのですが、ある時からまた同様の現象が発生するようになりました。


CC BY-SA 4.0
2020-11-12T10:43:56.410
71892
2020-12-16T04:27:20.890
2020-11-12T11:48:07.170
3060
42703
question
spring oracle
HikariCPとOracleDBによるConnectionPoolの枯渇


Hikari
CPのGitHubのissuesに[同様の事象](https://github.com/brettwooldridge/HikariCP/issues/1256)が報告されていました。このページをじっくり読んでいただければ、本件も解決するのではないかと思います。

ざっと読んだ印象ですが、おそらく、[この回答](https://stackoverflow.com/questions/18822552/setting-
network-timeout-for-jdbc-
connection/18824038#18824038)を参考にソケットタイムアウトを設定すれば、解決するのではないかと推測します。


CC BY-SA 4.0
2020-12-16T04:27:20.890
72684
2020-12-16T04:27:20.890
21092
71892
answer