"Spring-Boot-2.0.0-M1" versija pakeičia numatytąjį duomenų bazės ryšio telkinį iš "Tomcat JDBC Pool" į "Hikari", o paleidus "Spring Boot" programą, konsolė išveda šiuos duomenis
2021-11-25 14:48:09.429 INFO 22236 --- [ pagrindinis] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Pradedama... 2021-11-25 14:48:09.813 INFO 22236 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Pradžia baigta. Numatytosios Hikari konfigūracijos reikšmės yra šios:
{"connection-timeout":30000,"maximum-pool-size":10,"max-lifetime":1800000,"minimum-idle":10,"validation-timeout":5000,"idle-timeout":600000}
| vardas, pavadinimas | Konstruktoriaus numatytieji nustatymai | Numatytoji konfigūracija yra reikšmė po tikrinimo | Patvirtinti iš naujo | | minTuščioji eiga | -1 | 10 | minIdle<0 arba minIdle>maxPoolSize, jis iš naujo nustatomas į maxPoolSize | | maxPoolSize | -1 | 10 | Jei maxPoolSize yra mažesnis nei 1, jis nustatomas iš naujo. Kai minIdle<=0 iš naujo nustatomas į DEFAULT_POOL_SIZE, jis yra 10; Jei minIdle>0, jis iš naujo nustatomas į minIdle reikšmę | | maksimalus tarnavimo laikas | MINUTES.toMillis(30) = 1800000 | 1800000 | Jei jis nėra lygus 0 ir trumpesnis nei 30 sekundžių, jis bus atstatytas į 30 minučių | | connectionTimeout | SECONDS.toMillis(30) = 30000 | 30000 | Jei jis yra mažesnis nei 250 ms, jis atstatomas į 30 sekundžių | | validationTimeout | SECONDS.toMillis(5) = 5000 | 5000 | Jei jis yra mažesnis nei 250 ms, jis atstatomas į 5 sekundes | | loginTimeout | 10 | 30 | Math.max(1, (int) MILLISECONDS.toSeconds(500L + connectionTimeout)), kuris yra maksimalus connectionTimeout + 500ms konvertuoti sekundžių skaičių į visumą ir 1 | | Tuščiosios eigos laikas | MINUTES.toMillis(10) = 600000 | 600000 | Jei idleTimeout+1 sekundė > maxLifetime ir maxLifetime >0, jis bus atstatytas į 0; Jei idleTimeout!=0 ir mažiau nei 10 sekundžių, jis iš naujo nustatomas į 10 sekundžių | | nuotėkio aptikimo slenkstis | 0 | 0 | Jei jis yra didesnis nei 0 ir nėra vieneto testas, toliau sprendžiama, kad (leakDetectionThreshold < SECONDS.toMillis(2) arba (leakDetectionThreshold > maxLifetime & maxLifetime > 0) bus atstatytas į 0. Tai yra, jei jis turi įsigalioti, jis turi būti >0 ir negali būti trumpesnis nei 2 sekundės, o kai maxLifetime > 0 valandų negali būti ilgesnis už maxLifetime | | initializationFailTimeout | 1 | 1 | - | | isAutoCommit | true | true | - | | isReadOnly | false | Fasle | - | | isAllowPoolSuspension | false | false | - | | isIsolateInternalQueries | false | false | - | | isRegisterMbeans | false | false | - | | Uždaromos | false | true | Ši vėliavėlė galioja prasidėjus paleidimui, nurodant, kad modifikacija nebeveikia | | poolName | nulis | HikariPool-1 | - | | Katalogas | nulis | nulis | - | | ryšysInitSQL | nulis | nulis | - | | connectionTestQuery | nulis | nulis | - | | dataSourceClassName | nulis | nulis | - | | Schemos | nulis | nulis | - | | transactionIsolationName | nulis | nulis | - | | duomenų šaltinis | nulis | nulis | - | | dataSourceProperties | {} | {} | - | | siūlų gamykla | nulis | nulis | - | | suplanuotasVykdytojas | nulis | nulis | - | | metrikaTrackerFactory | nulis | nulis | - | | metricRegistry | nulis | nulis | - | | healthCheckRegistry | nulis | nulis | - | | healthCheckProperties | {} | {} | - |
Atlikdama testavimą nepalankiausiomis sąlygomis, programa gali pranešti apie šias klaidas:
Sukėlė: org.springframework.jdbc.CannotGetJdbcConnectionException: nepavyko gauti JDBC ryšio; įdėtoji išimtis yra java.sql.SQLTransientConnectionException: HikariPool-1 – ryšys nepasiekiamas, užklausos skirtasis laikas baigėsi po 30000 ms. adresu org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) adresu org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) adresu org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) adresu org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) adresu org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) adresu org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) adresu org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) adresu org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) adresu org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) adresu com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81) adresu org.apache.ibatis.plugin.invoke(Plugin.java:62) adresu com.sun.proxy.$Proxy 224.query(Nežinomas šaltinis) adresu org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) ... 114 daugiau Sukėlė: java.sql.SQLTransientConnectionException: HikariPool-1 – ryšys nepasiekiamas, užklausos skirtasis laikas baigėsi po 30000 ms. adresu com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695) adresu com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197) adresu com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162) adresu com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) adresu org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) adresu org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) adresu org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ... 126 daugiau
Klaida:Nepavyko gauti JDBC ryšio; įdėtoji išimtis yra java.sql.SQLTransientConnectionException: HikariPool-1 – ryšys nepasiekiamas, užklausos skirtasis laikas baigėsi po 30000 ms.
Valdiklis išveda HikariDataSource konfigūracijos sąsajos kodą taip:
Optimizuokite schemą, padidinkite maksimalų gijų skaičių ir nenaudojamų jungčių skaičių bei pakeiskite application.yml konfigūraciją taip:
(Pabaiga)
|