環境: Ubuntuの開発詳細に14.04.4ジェンキンスHikariCPを解放しないSpringMVC JPA WebアプリケーションMySQL接続の展開に
アプリケーション:スプリング4.2.5.RELEASE MVCのWebアプリケーションは、MySQL 151 + 1つのMAX_CONNECTIONSと、Hibernate、HikariCP、プールごとに20個の接続、1つのプールを持つデータソース。
自動展開ツール:ジェンキンス
展開コンテナ:のTomcat 7
前提条件:
1.アプリケーションがすでに起動し、Webを介してアクセスでき、作業。
ユースケース:
1.ログインmysqlコマンドラインと実行へ:ショーPROCESSLIST。
2.コマンドラインで20個の接続+ 1を観察します。
3. Jenkinsで新しいビルドを開始し、新しい* .warをtomcatに展開するのを待ちます
4.実行:show processlist; mysqlコマンドラインで
5.コマンドラインで40個の接続+ 1を監視します。
6.接続がMAX_CONNECTIONS + 1まで増加していることを確認してください。その後、DBが必要なユニットテストが失敗するため、Jenkinsがビルドに失敗します。期待
: 20の場合で、最大で接続アプリケーションがアクセスされ、全くの接続、アプリケーションがアイドル状態の場合(これは私の地元の発展のWindows 8.1 Proのマシン上で私が観察された行動である)
HikariCPデータソースの詳細:
@Bean
public LocalContainerEntityManagerFactoryBean getEntityManagerFactoryBean() {
LocalContainerEntityManagerFactoryBean sessionFactory = new LocalContainerEntityManagerFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan("com.myapp");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
sessionFactory.setJpaVendorAdapter(vendorAdapter);
sessionFactory.setJpaProperties(hibernateProperties());
return sessionFactory;
}
private DataSource dataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(20);
ds.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
ds.addDataSourceProperty("url", "jdbc:mysql://localhost/myapp");
ds.addDataSourceProperty("user", "usr");
ds.addDataSourceProperty("password", "pwd");
ds.addDataSourceProperty("cachePrepStmts", true);
ds.addDataSourceProperty("prepStmtCacheSize", 250);
ds.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
ds.addDataSourceProperty("useServerPrepStmts", true);
return ds;
}
private Properties hibernateProperties() {
final Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
properties.put("hibernate.hbm2ddl.auto", "validate");
properties.put("hibernate.implicit_naming_strategy", "legacy-jpa");
return properties;
}
接続がでも、アプリケーションの再展開した後、解放されていないようです。何か案は?次をやってしまった