###前提・実現したいこと
Spring Bootで作成しているWEBシステムで、コネクションプールの設定を行いたいのですが、application.propertiesに以下の設定を記載しても設定が反映されませんでした。
application.properties
1spring.datasource.tomcat.initialSize=20
以下にpom.xmlを抜粋します
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-java8time</artifactId> <version>2.1.0.RELEASE</version> </dependency>
spring-boot-starter-jdbcを利用しているため、Tomcat Datasourceが自動的に利用されていると考えています。
確認方法としては、以下のSQL文を実行してセッション数を確認、また、パフォーマンスモニターでSqlServerのUserConnectionsを確認するという方法を取っています
sql
1select * from sys.dm_exec_sessions where host_name is not NULL
2つの画像は実際に最初にあげたapplication.propertiesで、STSからデバッグで実行した際の内容です
host_nameが2014となっているのがその接続なのですが、spring.datasource.tomcat.initialSize=に設定した接続数20が反映されず、デフォルトの10接続が作られています
initial-sizeという書き方に変えても状況が変わりませんでした。
また、そもそもコネクションプールの設定の確認方法は上記のような確認方法で問題ないのでしょうか・・・
何かアドバイスをいただけるとうれしいです。
よろしくお願いします。
<追記>
A-pZさんに頂いた回答を元に修正したデータソース設定クラス
java
1 2import org.apache.tomcat.jdbc.pool.DataSource; 3//import その他色々 4 5@Configuration 6public class DataSourceConfig { 7 8 @Autowired 9 private DataSourceProperties properties; 10 11 @Value("${spring.datasource.tomcat.initialSize}") 12 private int initialSize;//追加した 13 14 @Bean(name="hogeds") 15 @Primary 16 public DataSource createDataSource() { 17 //DataSourceBuilderやめた 18 DataSource ds = new DataSource(); 19 ds.setDriverClassName(this.properties.getDriverClassName()); 20 ds.setUrl(this.properties.getUrl()); 21 ds.setUsername(this.properties.getUsername()); 22 ds.setPassword(this.properties.getPassword()); 23 ds.setInitialSize(initialSize); 24 return ds; 25 } 26 27 28 @Bean(name="hogejdbc") 29 @Primary 30 public NamedParameterJdbcTemplate createJdbcTemplate( 31 @Qualifier("healthmstds")DataSource dataSource) { 32 33 return new NamedParameterJdbcTemplate(dataSource); 34 } 35 36}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/13 02:23
2017/06/13 04:16