Wir haben eine Standortdienstanwendung, die ortsbezogene Informationen zu unseren anderen Anwendungen aus der MySQL-Datenbank bereitstellt. Aus irgendeinem Grund kann der Standortdienst keine Verbindung zur MySQL-Datenbank herstellen, wenn mehrere Anforderungen empfangen werden. Wir haben festgestellt, dass er bei einer fortlaufenden 15-20-Anforderung gleichzeitig fehlschlägt. Die folgenden Snippets sind der MySQL-Konfigurationscode und der Fehler-Stack.Hikari CP Verbindungsfehler
[email protected](name = "locationDataSource")
public HikariDataSource getDataSource(@Value("${projectxx.mysql.location.url}") String url,
@Value("${projectxx.mysql.location.username}") String username,
@Value("${projectxx.mysql.location.password}") String password) {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(url);
config.setUsername(username);
config.setPassword(password);
config.setDriverClassName("com.mysql.jdbc.Driver");
config.setMaximumPoolSize(45);
config.setPoolName("locationDBpool");
config.setMinimumIdle(15);
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
return new HikariDataSource(config);
}
@Bean(name = "locationSession")
@Qualifier("locationDataSource")
public SessionFactory getSessionFactoryBean(@Autowired(required = true) HikariDataSource dataSource) {
LocalSessionFactoryBean sessionFacBean = new LocalSessionFactoryBean();
sessionFacBean.setDataSource(dataSource);
sessionFacBean.setPackagesToScan("com.projectxxx.dao");
Properties hibernateProperties = new Properties();
hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
sessionFacBean.setHibernateProperties(hibernateProperties);
try {
sessionFacBean.afterPropertiesSet();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFacBean.getObject();
}
java.sql.SQLTransientConnectionException: locationDBpool - Anschluss nicht verfügbar ist, Zeitüberschreitung der Anforderung nach 30000ms. bei com.zaxxer.hikari.pool.HikariPool.createTimeoutException (HikariPool.java:666) ~ [HikariCP-2.7.4.jar: na] bei com.zaxxer.hikari.pool.HikariPool.getConnection (HikariPool.java: 182) ~ [HikariCP-2.7.4.jar: na] bei com.zaxxer.hikari.pool.HikariPool.getConnection (HikariPool.java:147) ~ [HikariCP-2.7.4.jar: na] bei com. zaxxer.hikari.HikariDataSource.getConnection (HikariDataSource.java:85) ~ [HikariCP-2.7.4.jar: na] bei org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection (DatasourceConnectionProviderImpl.java:122) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.internal.AbstractSessionImpl $ NonContextualJdbcConnectionAccess.obtainConnection (AbstractSessionImpl.java:386) ~ [hibernate-core-5.0.12. Final.jar: 5.0.12.Final] um org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded (LogicalConnectionManagedImpl.java:87) ~ [Hibernate-Core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.resource.jdbc. internal.LogicalConnectionManagedImpl.getPhysicalConnection (LogicalConnectionManagedImpl.java:112) ~ [Hibernate-Core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement (LogicalConnectionManagedImpl. Java: 230) ~ [Hibernate-Core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin (LogicalConnectionManagedImpl.java:237) ~ [Winterschlaf- core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl $ TransactionDriverControlImpl.begin (JdbcResourceLocal TransactionCoordinatorImpl.java:214) ~ [Hibernate-Core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.engine.transaction.internal.TransactionImpl.begin (TransactionImpl.java:52) ~ [ hibernate-core-5.0.12.Final.jar: 5.0.12.Final] bei org.hibernate.internal.SessionImpl.beginTransaction (SessionImpl.java:1512) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] unter com.projectxxx.actionImpl.LocationManagementImpl.findAddressByPostalCode (LocationManagementImpl.java:40) ~ [Klassen /: na] unter com.projectxxx.controller.LocationReadController.service3 (LocationReadController.java:40) ~ [classes /: na] bei sun.reflect.GeneratedMethodAccessor51.invoke (Unbekannte Quelle) ~ [na: na] bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_131] bei java.l ang.reflect.Method.invoke (Methode.java:498) ~ [na: 1.8.0_131] unter org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:205) ~ [spring-web- 4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod.java:133) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:97) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3.12. RELEASE] bei org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:827) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] um org.springframework.web.servlet.mvc.method.annotation.RequestMappi ngHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:738) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:85) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3. 12.RELEASE] unter org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:967) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework. web.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) ~ [spring-webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet. Java: 970) ~ [feder webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:861) ~ [feder webmvc- 4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei javax.servlet.http.HttpServlet.ser Schraubstock (HttpServlet.java:635) ~ [tomcat-einzubetten-core-8.5.23.jar: 8.5.23] bei org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:846) ~ [Frühlings- webmvc-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei javax.servlet.http.HttpServlet.service (HttpServlet.java:742) ~ [tomcat-embed-Core-8.5.23.jar: 8.5. 23] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core. ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) ~ [tomcat-embed-websocket-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [zu mcat-embed-Core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-Core-8.5.23.jar: 8.5.23] unter org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework. web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. Java: 193) ~ [tomcat-einzubetten-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-einzubetten-core- 8.5.23.jar: 8.5.23] unter org.springframework.web.filter.HttpPutFormContentFilter.doFilterInt ernal (HttpPutFormContentFilter.java:108) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [ spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.23. jar: 8.5.23] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.springframework. web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java:81) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter. java: 107) ~ [spring-web-4.3.12.RELEASE.jar: 4.3.12.RELEASE] a t org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:197) ~ [spring-web -4.3.12.RELEASE.jar: 4.3.12.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-4.3.12.RELEASE.jar: 4.3 .12.RELEASE] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina .core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:199) ~ [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache. catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:478) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:140) [tomcat-embed-core-8.5.23.jar : 8.5.23] bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:81) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catalina. core.StandardEngineValve.invoke (StandardEngineValve.java:87) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.catali na.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:803) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.23.jar: 8.5 .23] bei org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:868) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.tomcat.util. net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1459) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java : 49) [tomcat-embed-core-8.5.23.jar: 8.5.23] bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) [na: 1.8.0 _131] bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) [na: 1.8.0_131] bei org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java : 61) [tomcat-embed-Core-8.5.23.jar: 8.5.23] bei java.lang.Thread.run (Thread.java:748) [na: 1.8.0_131]
Versuchen Sie setMaximumPoolSize (100); – user7294900
hi @ user7294900, Die Poolgröße kann aus anderen Gründen nicht geändert werden. Ich schätze es sehr, wenn Sie mir dafür eine Erklärung geben können? –