2016-11-03 6 views
4

私はspring-boot 1.4.0とOracleデータベースを使用するアプリケーションを持っています。 、データベース接続の初期プールサイズを試してみてください(spring-boot)

spring.datasource.driverClassName = oracle.jdbc.OracleDriver 
spring.datasource.url = url 
spring.datasource.username = username 
spring.datasource.password = password 
spring.datasource.maxActive= x 
spring.datasource.initialSize= y 
spring.datasource.testWhileIdle = true 
spring.datasource.validationQuery = SELECT 1 from dual 

と私は、データベース接続を確認するために、クエリ

select *from V$SESSION where username= 'username'; 

を使用しています:私はこれらのconfigsを使用して、application.propertiesにプールの接続数を定義しようとしていますしかし、アプリケーションを実行すると、initialSizeとして定義しているにもかかわらず、常に10の接続が使用されます。私はGitHub上の他のstackoverflow答えと例をチェックしようとしたが、なぜそれが動作していないのかわからないので、誰かが私を助けることができれば感謝します。ありがとう!

答えて

4

スプリングブート1.4 does not bind the DataSource in the spring.datasource namespace anymore。サポートされている各接続プールの実装には、それぞれのキーに専用の名前空間があります。あなたはおそらく古いサンプルを見ているでしょう。

まず、使用している接続プールを特定する必要があります(スターターに頼っている場合は、おそらくTomcat JDBCプールが必要です。spring.datasource.tomcatを参照)。 IDEを使用して、使用できるキーのリストを取得します。

+0

ありがとうございます!魅力のように働いた。デフォルトでは、spring-bootはTomcatを使用し、 "spring.datasource.tomcat.initial-size = x"を追加することで問題が解決されました。 –

+0

デフォルトは10ですが、これは私にはかなりランダムですが、代わりに7または12であった可能性があります。私は、データベースが集中的に使用されない場合、これはほとんど影響を与えないだろうと思います。 –

+0

@ChristopheRoussy:接続プールのサイジングは、明らかにかなり科学的です。ここには興味深い記事があります:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing – Henrik

関連する問題