Java IO错误:在部署JAR文件后,连接在spring引导中超时?
我已经在我的Java IO错误:在部署JAR文件后,连接在spring引导中超时?,java,spring,spring-boot,spring-data-jpa,embedded-tomcat-7,Java,Spring,Spring Boot,Spring Data Jpa,Embedded Tomcat 7,我已经在我的服务器上部署了jar文件,该文件是从spring启动应用程序创建的。因此,我们使用了嵌入式tomcat 我已经在1-java类中为此应用程序设置了以下数据库配置 import org.apache.commons.dbcp.BasicDataSource; ... @Bean public DataSource dataSource() { //DriverManagerDataSource dataSource = new DriverMan
服务器上部署了jar
文件,该文件是从spring启动应用程序创建的。因此,我们使用了嵌入式tomcat
我已经在1-java
类中为此应用程序设置了以下数据库配置
import org.apache.commons.dbcp.BasicDataSource;
...
@Bean
public DataSource dataSource() {
//DriverManagerDataSource dataSource = new DriverManagerDataSource();
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(environment.getRequiredProperty("spring.datasource.driverClassName"));
dataSource.setUrl(environment.getRequiredProperty("spring.datasource.url"));
dataSource.setUsername(environment.getRequiredProperty("spring.datasource.username"));
dataSource.setPassword(environment.getRequiredProperty("spring.datasource.password"));
dataSource.setMaxActive(10);
dataSource.setMaxIdle(3);
dataSource.setMaxWait(environment.getRequiredProperty("spring.datasource.tomcat.max-wait"));
dataSource.setTestOnBorrow(environment.getRequiredProperty("spring.datasource.tomcat.test-on-borrow"));
dataSource.setInitialSize(environment.getRequiredProperty("spring.datasource.tomcat.initial-size"));
return dataSource;
}
我注意到,在部署最初的几分钟时,它工作得很好。但经过一段时间后,它开始出现以下错误
WARN SQL Error: 17002, SQLState: 08006
ERROR IO Error: Connection timed out (Read failed)
WARN SQL Error: 0, SQLState: null
ERROR Already closed.
ERROR Forwarding to error page from request [/client] due to exception [Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection]
org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection
at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:586) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:133) ~[spring-data-jpa-1.11.0.RELEASE.jar!/:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:57) ~[spring-data-commons-1.13.0.RELEASE.jar!/:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
at com.sun.proxy.$Proxy129.findUserWithCompanyInfo(Unknown Source) ~
[?:?]
Caused by: org.hibernate.TransactionException: Unable to commit against JDBC Connection
at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:86) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
... 111 more
Caused by: java.sql.SQLRecoverableException: IO Error: Connection timed out (Read failed)
at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:665) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
... 111 more
Caused by: java.net.SocketException: Connection timed out (Read failed)
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_121]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_121]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_121]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_121]
at oracle.net.ns.Packet.receive(Packet.java:300) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.net.ns.DataPacket.receive(DataPacket.java:106) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.net.ns.NetInputStream.read(NetInputStream.java:260) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.net.ns.NetInputStream.read(NetInputStream.java:185) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.net.ns.NetInputStream.read(NetInputStream.java:102) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4C7Ocommoncall.doOCOMMIT(T4C7Ocommoncall.java:75) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:610) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
... 111 more
谁能告诉我哪里出了问题?
在编程端
或网络端
这究竟是问题
?我假设boot正在为您配置数据源。您可以将以下内容添加到application.properties中
spring.datasource.validation query=select 1
spring.datasource.teston-borrow=true
我将这些添加到我的配置中,它可以正常工作。请检查。您是否在spring.datasource.url中使用autoReconnect=true?您使用的是哪个版本的spring引导?@Subh我使用的是1.5.1.spring引导的发行版将此附加到您的数据源url autoReconnect=true@pvpkiran我到底需要在哪里应用autoReconnect=true,因为我看到没有这样的财产来实现这一点。如果你知道,那就告诉我。