Spring-Boot-2.0.0-M1 -versio vaihtaa oletustietokantayhteyspoolin tomcat jdbc poolista hikariin, ja kun Spring Boot -sovellusta ajetaan, konsoli tuottaa seuraavan tuloksen
2021-11-25 14:48:09.429 INFO 22236 --- [pää] com.zaxxer.hikari.HikariDataLähde: HikariPool-1 - Aloitetaan... 2021-11-25 14:48:09.813 INFO 22236 --- [pää] com.zaxxer.hikari.HikariDataLähde: HikariPool-1 - Aloitus valmis. Hikarin oletusasetukset ovat seuraavat:
{"connection-timeout":30000,"maximum-pool-size":10,"max-lifetime":1800000,"minimum-idle":10,"validation-timeout":5000,"idle-timeout":600000}
| Nimi | Valmistajan oletusasetukset | Oletuskonfiguraatio on arvo validoinnin jälkeen | validatereset | | minIdle | -1 | 10 | minIdle<0 tai minIdle>maxPoolSize, se nollataan maxPoolSizeen | | maxPoolSize | -1 | 10 | Jos maxPoolSize on pienempi kuin 1, se nollataan. Kun minIdle<=0 nollataan arvoon DEFAULT_POOL_SIZE, se on 10; Jos minIdle>0, se nollautuu arvoon minIdle | | maxLifetime | MINUUTIT.toMillis(30) = 1800000 | 1800000 | Jos se ei ole nolla ja alle 30 sekuntia, se palautetaan 30 minuuttiin | | connectionTimeout | SEKUNTEJA.toMillis(30) = 30000 | 30000 | Jos se on alle 250 ms, se palautetaan 30 sekuntiin | | validationTimemore | SEKUNTEJA.toMillis(5) = 5000 | 5000 | Jos se on alle 250 ms, se palautetaan 5 sekuntiin | | loginTimeout | 10 | 30 | Math.max(1, (int) MILLISECONDS.toSeconds(500L + connectionTimeout)), joka on connectionin maksimiTimeout+500ms muuntaakseen sekuntimäärän kokonaiseksi ja 1 | | idleTimeout | MINUUTIT.toMillis(10) = 600000 | 600000 | Jos idleTimeout+1 sekunti > maxLifetime ja maxLifetime >0, se nollautuu nollaan; Jos idleTimeout!=0 ja alle 10 sekuntia, se nollautuu 10 sekuntiin | | vuodon havaitseminenKynnys | 0 | 0 | Jos se on suurempi kuin 0 eikä yksikkötesti, arvioidaan lisäksi, että (leakDetectionThreshold < SECONDS.toMillis(2) tai (leakDetectionThreshold > maxLifetime && maxLifetime > 0) nollataan. Eli jos sen tulee vaikuttaa, sen täytyy olla >0, eikä se saa olla alle 2 sekuntia, ja kun maxLifetime > 0 tuntia ei voi olla suurempi kuin maxLifetime | | initializationFailTimeout | 1 | 1 | - | | isAutoCommit | true | true | - | | isReadOnly | false | Fasle | - | | isAllowPoolSuspension | false | false | - | | isIsolateInternalQueries | false | false | - | | isRegisterMbeans | false | false | - | | sinetöity | false | true | Tämä lippu on voimassa ajon alkaessa, mikä tarkoittaa, että muutos ei enää ole käynnissä | | poolName | nolla | HikariPool-1 | - | | luettelo | nolla | nolla | - | | connectionInitSql | nolla | nolla | - | | connectionTestQuery | nolla | nolla | - | | dataSourceClassName | nolla | nolla | - | | skeema | nolla | nolla | - | | transactionIsolationName | nolla | nolla | - | | dataLähde | nolla | nolla | - | | dataSourceProperties | {} | {} | - | | threadFactory | nolla | nolla | - | | scheduledExecutor | nolla | nolla | - | | metricsTrackerFactory | nolla | nolla | - | | metricRegistry | nolla | nolla | - | | healthCheckRegistry | nolla | nolla | - | | healthCheckProperties | {} | {} | - |
Rasitustestiä tehtäessä sovellus voi raportoida seuraavat virheet:
Aihe: org.springframework.jdbc.CannotGetJdbcConnectionException: Epäonnistui JDBC-yhteyden saamisessa; sisäkkäinen poikkeus on java.sql.SQLTransientConnectionException: HikariPool-1 – Yhteys ei ole käytettävissä, pyyntö ajoitettu 30000 ms:n jälkeen. osoitteessa org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) osoitteessa org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) osoitteessa org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) osoitteessa org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) osoitteessa org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) osoitteessa org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) osoitteessa org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) osoitteessa org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) osoitteessa org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) osoitteessa com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81) osoitteessa org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) osoitteessa com.sun.proxy.$Proxy 224.query(Tuntematon lähde) osoitteessa org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) ... 114 lisää Aiheutettu: java.sql.SQLTransientConnectionException: HikariPool-1 - Yhteys ei ole käytettävissä, pyyntö ajoitettu 30000 ms:n jälkeen. osoitteessa com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695) osoitteessa com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197) osoitteessa com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162) osoitteessa com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) osoitteessa org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) osoitteessa org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) osoitteessa org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ... 126 lisää
Virhe:JDBC Connectionin saaminen epäonnistui; sisäkkäinen poikkeus on java.sql.SQLTransientConnectionException: HikariPool-1 – Yhteys ei ole käytettävissä, pyyntö ajoitettu 30000 ms jälkeen.
Ohjain tuottaa HikariDataSource-konfiguraatiorajapinnan koodin seuraavasti:
Optimoi järjestelmä, lisää maksimisäikeiden määrää ja lisää käyttämättöminä olevien liitäntöjen määrää, ja muokkaa application.yml konfiguraatiota seuraavasti:
(Loppu)
|